2016-05-13 1 views
2

はこちらをご覧角度チュートリアルで:チュートリアルが言うAngular2のコンポーネントメタデータで指示が必要なのはいつですか?

@Component({ 
    selector: 'my-app', 
    //... 
    directives: [HeroDetailComponent] 
}) 

: 「ブラウザがHTMLタグを無視し、属性 https://angular.io/docs/ts/latest/tutorial/toh-pt3.html

HeroDetailComponentはapp.component.tsへの指示として追加されますAngularはそれをメタデータディレクティブ配列に列挙してAngularに伝えます(HeroDetailComponent)。ここで見つかった実施例ではしかし

: - :

@Component({ 
    selector: 'pm-app', 
    //... 
    directives: [ROUTER_DIRECTIVES],  
}) 
https://github.com/DeborahK/Angular2-GettingStarted(APM参照最終更新プロジェクトを)

app.component.tsがProductDetailComponentという名前のコンポーネントはまだそれのためのディレクティブを持っていないロード

2番目の例で、ProductDetailComponentディレクティブを指定せずにProductDetailComponentをロードできるのはなぜですか?

答えて

1

私が見ることができるものから、AppComponent輸入ProductDetailComponentしかしProductDetailComponent@Routesで定義されているので<router-outlet>を経由して、それを使用しています。

これは<router-outlet>はちょうどあなたが(この場合製品list.component.htmlのコード<a [routerLink]="['/product', product.productId]">存在を実行発生している)それらに移動することを決定するときにコンポーネントが表示される場所を定義することを意味します。

ProductListComponentは、selectorを定義していないため、他のコンポーネントのテンプレート内では参照できませんでした。

コンポーネントは、セレクタを介してテンプレート内で参照されるコンポーネント/ディレクティブをディレクティブで定義する必要があります。

私はこれが助けてくれるといいですか

+0

>>これが役立ちますように。それは確かにします。ありがとうございました。 – Sam

関連する問題