我需要从一组标签组件中侦听一个事件。这些选项卡发出“onMinimized”,但我宁愿在一行代码中连接这些事件,而不是为模板中的每个选项卡组件条目输入(onMinimized)="hide"
。我有一个ContentChildren数组,我可以循环使用。
我想在父母身上做类似的事情:
@ContentChildren(TabComponent) tabs: QueryList<TabComponent>;
...
ngAfterContentInit() {
this.tabs.map((t: TabComponent) => {
t.addEventListener("onMinimized", this.hide);
});
}
hide() {
// hide tabs
}
思考?
答案 0 :(得分:3)
经过一些试验和错误后计算出来。
ngAfterContentInit() {
this.tabs.map((t: TabComponent) => {
t.minimizeTab.subscribe(() => { this.hide(); })
});
}
解决问题的方法是考虑组件有一个属性,它是一个EventEmitter(就像所有角度输出一样)。 EventEmitters是可观察的,因此您只需订阅事件流。