2017-10-28 7 views
3

だけViewContainerRef.createComponentにインデックスパラメータの意味を明確にしよう:私は https://plnkr.co/edit/sbDomj 小さな例を作成しましたそして、私は、インデックスを設定 :ViewContainerRef(indexパラメータ)

createComponent<C>(
    componentFactory: ComponentFactory<C>, 
    index?: number, 
    injector?: Injector, 
    projectableNodes?: any[][], 
    ngModule?: NgModuleRef<any> 
): ComponentRef<C> 

はインデックスパラメータを確認できます0としてください。OKです。この例は動作します。しかし、この値(1)を変更すると、コンポーネントは追加されません。どうして?このパラメータの応答は何ですか?

答えて

3

ViewContainerRefのhostViewに複数のコンポーネントを追加できます。

デフォルト(インデックスが指定されていない)ということは、新しいコンポーネントがリストの最後に追加されたことを意味します。

インデックスが指定されている場合、新しいコンポーネントがその位置に挿入されます。無効な位置が追加された場合(空のリストに対して1が無効)、記述された動作が得られます。 リストにすでに2つのコンポーネントが含まれている場合は、1が有効なインデックスになり、コールは1番目と2番目の間にコンポーネントを挿入します。

https://angular.io/api/core/ViewContainerRef#createComponent

Plunker example

を参照してください。
関連する問題