2016-11-30 11 views
0

私は次のようにコードをいくつかのコンポーネントを作成しました:Angular2 - 作成されたコンポーネントを動的に挿入する方法は?

resolveCom(com: any, viewContain: ViewContainerRef): ComponentRef<any> { 
     let comFac = this.componentFactoryResolver.resolveComponentFactory(com) 
     let newCom: ComponentRef<any> = viewContain.createComponent(comFac) 
     newCom.changeDetectorRef.detectChanges() 
     return newCom 
    } 

そして、私は、ダイナミックいくつかcompoenntsを作成し、配列に保存:

let newCom: ComponentRef<any> = this.resolveCom(item, viewContain) 
saveCom[key].push(newCom) 

ビューがcreated.Nowたコンポーネントを表示することができます私はこれらのコンポーネントを隠したり表示したりしたいが、私はそれらを破壊して再作成したくない。 私はそれらを今すぐ保存しました。私はビューに保存するコンポーネントを動的に挿入できますか?

答えて

0

あなたはlocation.nativeElementを使用して要素にアクセスして、属性またはプロパティ

newCom.location.nativeElement.hidden = true 

または

this.renderer.setElementProperty(newCom.location.nativeElement, 'hidden', true); 
+0

しかし 'hidden'属性を設定するためにそれを使用するようですがIE10でサポートされていなかった - – oceania

+0

ました例として意味しています。代わりに 'setElementAttribute()'または 'setElementClass()'を使用し、 '[hidden] {display:none; } 'をグローバルCSSに渡して、より良いブラウザサポートを得ることができます。 https://angular.io/docs/ts/latest/api/core/index/Renderer-class.html –

+0

よろしくお願いいたします。私は試してみよう! – oceania

関連する問題