初心者の質問をお許しください。私はangular2から始めています。私は角度の英雄のデモを通してそれを作って、コンポーネントがどのように動作するか、データをhtmlなどに接続する方法を理解しています。angular2で静的コンテンツを表示
しかし、条件付きで表示したい静的なHTML他にはありません)?それにフックするデータモデルがなくても、すべてのインポートとエクスポートを含む完全なコンポーネントを作成する必要がありますか?そうでない場合は、どうやってこれをやりますか? 1の角度では、私はちょうどディレクティブを作成し、それを呼び出すが、
をcomponents.anためにすべてをangular2移動していると思います更新 WelcomeComponentと呼ばれるコンポーネント(welcome.component.ts)とhtmlファイルを作成した(我々コンポーネントコードを混ぜるのではなく、すべてのhtmlをテンプレートに分けて保存しようとしています)。私はapp.component.tsにコンポーネントを登録しました。
ここimport { Component } from '@angular/core';
@Component({
selector: 'welcome',
templateUrl: './welcome.component.html'
})
export class WelcomeComponent{}
がwelcome.component.htmlです:
<!-- Main jumbotron for a primary marketing message or call to action -->
<div class="jumbotron">
<div class="container">
<h1>Hello, world!</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed et tincidunt mi, sed porttitor justo. Donec in vehicula arcu. Sed lobortis massa in sodales feugiat. Morbi in metus tristique, volutpat nisl ut, blandit odio. Ut elit ipsum, euismod ut suscipit interdum, tristique in velit. Quisque vestibulum elementum aliquam.</p>
<p><a class="btn btn-primary btn-lg" href="#" role="button">Learn more »</a></p>
</div>
</div>
ここ
だapp.module.ts:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { AppRoutingModule } from './app-routing.module';
// Imports for loading & configuring the in-memory web api
import { InMemoryWebApiModule } from 'angular-in-memory-web-api';
import { InMemoryDataService } from './in-memory-data.service';
import { AppComponent } from './app.component';
import { FavoritesComponent } from './favorites.component';
import { ItemsComponent } from './items.component';
import { ItemDetailComponent } from './item-detail.component';
import {ItemSearchComponent} from './item-search.component';
import { ItemService } from './item.service';
import {WelcomeComponent} from './welcome.component';
@NgModule({
imports: [
BrowserModule,
FormsModule,
HttpModule,
InMemoryWebApiModule.forRoot(InMemoryDataService),
AppRoutingModule
],
declarations: [
AppComponent,
FavoritesComponent,
ItemDetailComponent,
ItemSearchComponent,
ItemsComponent,
WelcomeComponent
],
providers: [ ItemService ],
bootstrap: [ AppComponent ]
})
export class AppModule { }
そして
はここwelcome.component.tsの内容ですここで私のindex.htmlファイルでどのように呼び出そうとしているのですか:
<welcome></welcome>
<div class="container">
<my-app></my-app>
<my-favorites></my-favorites>
<hr>
<footer>
<p>© 2016 Company, Inc.</p>
</footer>
</div> <!-- /container -->
my-favorites
コンポーネントはまったく同じ方法で定義され、そのコンポーネントの内容は正しく表示されます。私は何が欠けていますか?
うわ。それは残念です。私は単純なインクルードファイルに相当するものがあることを期待していました。静的なHTMLだけを含むコンポーネントを作成するのは非常に難しいようです。 – EmmyS
私は当初もそう考えていました。ただし、コンポーネントを使用すると、マークアップにコンテンツを含めるための宣言的なアプローチが提供され、htmlをより読みやすくします。静的なHTMLとコンポーネントは1つのファイルに含めることができるため、余分なオーバーヘッドはありません。唯一の作業は、コンポーネントをモジュールに登録することです。 [Angular CLI](https://github.com/angular/angular-cli)を使用することを強くお勧めします。これは、コンポーネントの追加および登録作業を簡略化します。 –
遅れて申し訳ありません。私は3週間病気でした。だから私は、あなたが提案してコンポーネントを作成したときにやったが、うまくいきません - エラーはありませんが、コンポーネントテンプレートの内容は表示されていません。 OPが新しいコードで編集されました。 – EmmyS