2017-01-28 23 views
0

ボタンをクリックすることで、コンポーネントファクトリを使用して複数のドロップダウンを追加しています。私は新しいドロップダウンを追加するたびに、前のページの上に表示されます。これは問題です。下に必要です。同じタイプの他のコンポーネントと関連して新しいコンポーネントの位置を設定する方法はありますか?動的に作成されたコンポーネントの角度2の位置

@ViewChild('additionalDropdown', { read: ViewContainerRef }) 
private additionalDropdown: any; 

...

let componentFactory = this.resolver.resolveComponentFactory(MultiselectComponent); 
let componentRef = this.additionalDropdown.createComponent(componentFactory, 0, this.additionalDropdown.injector) 

テンプレート:

<ng-container #additionalDropdown></ng-container> 
+0

これは「css」の問題ではありませんか?あなたはそれらを配置しようとしましたか? – lexith

答えて

2

挿入コンポーネントの位置はcreateComponent()第2引数です。

createComponent(componentFactory, 0)を実行しているので、コンテナ内の最初のビューとして常にコンポーネントを挿入しています(ゼロ=最初の位置)。

2番目の引数に値を渡さなかった場合、コンポーネントは最後のとしてに挿入されますが、3つの引数を渡すことはできません。

あなたは2番目の引数としてnullを渡すために試みることができるが、私はそれが動作するかわからない:

this.additionalDropdown.createComponent(componentFactory, null, this.additionalDropdown.injector); 

それとも、手動カウンタ(これは確かに働くだろう)かもしれない:

const counter = 0; 
this.additionalDropdown.createComponent(componentFactory, counter++, this.additionalDropdown.injector); 
+1

どうもありがとうございました。 –

関連する問題