Angular 单击表格的行时启动ngOnInit

Angular 单击表格的行时启动ngOnInit,angular,Angular,我有一个网格,如果我点击该行,就会出现弹出窗口。在这个弹出窗口中,我有两个选项卡,其中一个以这种方式加载 <div id="menu2" class="tab-pane fade"> <app-user-groups [userId]="userModel.ID_User"></app-user-groups> </div> 然后奇怪的事情发生了。首先,当网格加载时 ngOnInit() { this.ge

我有一个网格,如果我点击该行,就会出现弹出窗口。在这个弹出窗口中,我有两个选项卡,其中一个以这种方式加载

    <div id="menu2" class="tab-pane fade">
        <app-user-groups [userId]="userModel.ID_User"></app-user-groups>
    </div>
然后奇怪的事情发生了。首先,当网格加载时

ngOnInit() {
    this.getUserGroups(this.userId);
}

此外,launch和userId设置为undefined。如何使ngOnInit仅在单击表格的行时启动

这是因为userId是异步加载的,因此当视图最初呈现时,This.userId是未定义的。 您基本上只看到基于原始值(未定义)的onInit调用

试着这样做:

@Input()
userId: number;


ngAfterViewInit() {
    this.getUserGroups(this.userId);
}

在组件中导入AfterViewInit并使用ngAfterViewInit(){}调用
ngOnInit
时您无法控制,因为它是更改检测过程的一部分,请阅读
@Input()
userId: number;


ngAfterViewInit() {
    this.getUserGroups(this.userId);
}