这是场景, 我有主文件选项卡组件,其中使用@ViewChild()包含了文本组件;现在在ngAfterViewInit()上,我正在初始化菜单和子菜单列表。创建完子菜单列表后,我想将它们分配给文本组件。这样,当用户单击文本组件时,他会看到由选项卡组件分配的子组件。
ngAfterViewInit() {
// menu initialization
// sub-menu initialization
this.tabTextComponent.nativeElement.selectedSubTabs = this.selectedSubTabs;
}
我尝试了有无元素ref,但是没有任何效果。我还访问了其他解决方案,但对我没有任何帮助。有人可以帮我吗?
答案 0 :(得分:1)
您如何定义this.tabTextComponent可能有问题。试试这个(假设您组件的类是TabTextComponent):
@ViewChild(TabTextComponent) tabTextComponent: TabTextComponent;
ngAfterViewInit() {
// this.tabTextComponent should be defined here
this.tabTextComponent.selectedSubTabs = this.selectedSubTabs;
}
还请注意,除非您要对DOM进行某些操作,否则无需使用nativeElement。如果selectedSubTabs是TabTextComponent类的非私有属性,则可以直接访问它。
(顺便说一句,您似乎正在尝试从父级设置子级组件的属性?您可以考虑使用@Input绑定。)