ViewContainerRef(索引参数)

时间:2017-10-28 17:01:41

标签: angular

试着澄清ViewContainerRef.createComponent中的索引参数的含义:

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

让我们查看索引参数: 我创造了一个小例子 https://plnkr.co/edit/sbDomj 我将索引设置为0.没关系。这个例子有效。但是如果你改变这个值(1),那么组件就不会被添加。为什么?这个参数响应是什么?

1 个答案:

答案 0 :(得分:3)

您可以将多个组件添加到ViewContainerRef的hostView。

默认值(未指定索引)表示新组件添加在列表末尾。

如果指定了索引,则在该位置插入新组件。如果添加了无效位置(1对于空列表无效),则会获得所描述的行为。 如果列表已经包含2个组件,则1将是有效索引,并且您的调用将在第一个和第二个之间插入组件。

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

Plunker example