我正在使用第三方库,可以让我创建标签集。这是我用来创建简单标签集的代码
<clr-tabs
(clrTabsCurrentTabContentChanged)="onTabContentActivated($event)" >
<clr-tab-link>Firewall</clr-tab-link>
<clr-tab-link>DHCP</clr-tab-link>
<clr-tab-content>
<vcd-firewall-tab></vcd-firewall-tab>
</clr-tab-content>
<clr-tab-content>
<vcd-dhcp-tab></vcd-dhcp-tab>
</clr-tab-content>
</clr-tabs>
我已经连接了一个事件,它会告诉我何时选择了一个选项卡,我想在和上调用该loadData()
方法。<vcd-firewall-tab>
<vcd-dhcp-tab>
这clrTabsCurrentTabContentChanged
将为我提供对clr-tab-content
所选内容的引用,但我想访问它的第一个孩子并调用loadData()
以实现延迟加载。
我想我可以使用@QueryChildren
注释,除了我必须指定要查询的元素的类型。问题是在这种情况下,我不知道类型,它可能是<vcd-firewall-tab>
,<vcd-dhcp-tab>
或者我们拥有的许多其他选项卡,我不想在每次添加新选项卡时添加自定义代码。
我希望能够从我的事件处理程序中做这样的事情(但这不存在
onTabContentActivated(tabContent: TabContent){
(tabContent.query(':first-child') as CanLoadData).loadData();
}
我愿意接受任何建议,我想也许我可以将标签的索引与类似的东西相匹配@QueryChildren('clr-tab-content > *')
,假设每个标签下只有一个孩子。