angular2 @ContentChildren,基类为RC4

时间:2016-10-13 21:44:01

标签: angular

如果你想获得从基类派生的子组件,你可以使用Angular2 RC1到RC4:

@Component({    
...
providers: [ provide(BaseComponent,{ useExisting: forwardRef( () => Panel) )}

您的内容子属性看起来像:

@ContentChildren(BaseComponent) allBaseComponents;

我认为是RC5,其中'provide'被折旧了。随着2.0.0'提供'已被删除。我们现在如何获得具有共同基类的子组件?

以下是关于RC4'从stackoverflow提供'solution

的更多细节

2 个答案:

答案 0 :(得分:0)

provide(X, { Y })被替换为简单的对象文字。因此,不要明确地调用provide,而是像下面这样写:

providers: [
    { provide: BaseComponent, useExisting: forwardRef(() => Panel) }
]

然后,您仍然可以将@ContentChildren与基本组件类型一起使用,就像您习惯的那样。

答案 1 :(得分:-1)

你做的是:

@ContentChildren(BaseComponent) allBaseComponents: QueryList<BaseComponent>;

您不必提供任何东西。请注意,allBaseComponents将在特定生命周期挂钩中提供,并且不要忘记从ContentChildren导入QueryList@angular/core