如果你想获得从基类派生的子组件,你可以使用Angular2 RC1到RC4:
@Component({
...
providers: [ provide(BaseComponent,{ useExisting: forwardRef( () => Panel) )}
您的内容子属性看起来像:
@ContentChildren(BaseComponent) allBaseComponents;
我认为是RC5,其中'provide'被折旧了。随着2.0.0'提供'已被删除。我们现在如何获得具有共同基类的子组件?
以下是关于RC4'从stackoverflow提供'solution
的更多细节答案 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
。