2016-11-11 4 views
2

新しいコンポーネントを追加するには、ボタンをクリックしたいと思っています。 2角度は、より多くの角度1のようなものだったのであれば、たとえば、私が行うことができます:Angular2コンポーネントをDOMに動的に追加する

<button (click)="addComponent()">add</button> 

TS:

addComponent():void { 
    let component = $compile('<component-selector></component-selector>')(scope) 
    ele.append(component) 
} 

注:私は、同様の質問を知ってここに数回が、答え私に尋ねてきました読んだことは矛盾しており、主にDynamicComponentLoaderのような廃止予定のコードに依存しています。私は公式の文書に関連する何かを見つけることができず、理想的にはこれを行うための標準化された方法を探したいと思う。

+1

可能な重複タブをクリックしてユーザーが選択したコンポーネント](http://stackoverflow.com/questions/36325212/angular-2-dynamic-tabs-with-user-click-chosen-components) – echonax

答えて

5

いいえ、Angular 2はAngular 1と​​ほぼ同じですが、Angular 1ではこれをDOMの操作方法として推奨していません。

推奨される方法は、モデルを変更すると、モデルからHTMLを生成するためのテンプレートを使用することです:

private components = []; 

addComponent() { 
    this.components.push({}); // this object would typically contain the inputs of the component 
} 

とテンプレートで:[角度2動の

<component-selector *ngFor="let c of components"></component-selector> 
関連する問題