Angular 扩展抽象类的ContentChild

Angular 扩展抽象类的ContentChild,angular,children,Angular,Children,我有两个不同的组件,它们扩展了一个公共组件 AComponent extends BaseComponent {} BComponent extends BaseComponent {} 还有第三个组件具有ng内容 <wrapper> <a-component></a-component> <b-component></b-component> </wrapper> 我不想创建具有特定类型(A组件、B组件)的Co

我有两个不同的组件,它们扩展了一个公共组件

AComponent extends BaseComponent {}
BComponent extends BaseComponent {}
还有第三个组件具有ng内容

<wrapper>
  <a-component></a-component>
  <b-component></b-component>
</wrapper>
我不想创建具有特定类型(A组件、B组件)的ContentChild

您可以将其用作解决方法

按如下方式定义组件

@组件({
选择器:“a组件”,
templateUrl:“./a.component.html”,
样式URL:['./a.component.css'],
提供程序:[{provide:BaseComponent,useExisting:AComponent}]
})
导出类AComponent扩展BaseComponent实现OnInit{
构造函数(){
超级();
console.log(“a created”);
}
ngOnInit(){}
}

@组件({
选择器:“b组件”,
templateUrl:“./b.component.html”,
样式URL:['./b.component.css'],
提供程序:[{provide:BaseComponent,useExisting:BComponent}]
})
导出类BComponent扩展BaseComponent实现OnInit{
构造函数(){
超级();
console.log(“b已创建”);
}
ngOnInit(){}
}
其中
BaseComponent

导出抽象类BaseComponent{}
包装器组件中使用它,如下所示

@组件({
选择器:“包装器”,
templateUrl:'./wrapper.component.html',
样式URL:['./wrapper.component.css']
})
导出类包装器组件实现OnInit,AfterContentInit{
@ContentChildren(BaseComponent)组件;
构造函数(){}
ngOnInit(){}
ngAfterContentInit(){
log(“组件:”,this.components.length);
}
}

这是一个正在运行的演示

您能提供一个复制吗?这符合我的期望。遗憾的是,我必须在每个A、B、C、…、Z类中提供相同的代码块,但它仍然可以工作。非常感谢。
WrapperComponent {
  @ContentChildren(BaseComponent) components;
}