2016-04-27 12 views
3

私の質問は簡単ですが、私は信じています。クラスセレクター別にAngular2コンポーネントをレンダリングする

クラスセレクタを使用してインスタンス化するコンポーネントがあります。

@Component({ 
    selector: '.mycomponent', 
    template: '<h1>hello!</h1>' 
}) 
export class MyComponent{} 

のは、親コンポーネントは次のようになりましょう:

@Component({ 
    ... 
    template: 
     ` 
     <div class="mycomponent"></div> <!-- rendered --> 
     <div [class]="'mycomponent'"></div> <!-- not rendered --> 
     ` 
}) 
export class ParentComponent{} 

なぜそれが第二バージョンがレンダリングされることはありませんということですか?どのようにレンダリングするのですか?これは変更の検出の問題ですか、それともこの方法で動作するはずがありませんか? 私は変化の検出戦略を試してみましたが、これは何の効果もありませんでした。また、私はDynamicComponentLoaderを訪れました。私はそれを使いこなすことができます。

非エレメントセレクタを使用してコンポーネントを動的にロードする方法はありますか?

答えて

3

これは動作するはずです。コンポーネントとディレクティブは、静的に追加されたタグ、属性、およびクラスにのみ適用されます。

あなたが動的にそれが動作していないのはなぜコンポーネントとディレクティブがViewContainerRef

+0

これは、 '

Zze

+0

例のような動的HTMLがセレクタで機能しないためです。 http://stackoverflow.com/questions/36325212/angular-2-dynamic-tabs-with-user-click-chosen-components/36325468#36325468 –

-1

DynamicComponentLoaderまたはcreateComponent()を使用し追加/削除したい場合は、[クラス]を使用する場合、「クラス」は「割り当てないのattrであることを意味しているためでありますdivへの「mycomponent」クラス。

関連する問題