@ViewChild为空

时间:2018-07-18 09:12:33

标签: javascript angular

在我的组件中,我具有以下内容:

@ViewChild('PaginatedTableComponent') userTable: PaginatedTableComponent;

在此组件中,我具有以下HTML:

<pag-paginated-table #userTable
       [(shouldUpdate)]="shouldUpdate"
       [route]="academyMembersRoute"
       [dataStructure]="academyMembersdataStructure"
       [adminActions]="adminActions"
       [include]="academyMembersInclude">
</pag-paginated-table>

但是,userTable变量是null

谁能告诉我我可能会想念什么?还是为什么会这样?

更新

因此,如果我在ngOnInit中调用该函数,这表明变量已正确设置,这真的很奇怪。

但是,如果我等待并通过以下方式致电:

addUserClose() {
    this.userTable.callRoute();
    this.shouldUpdate = !this.shouldUpdate;
}

表示变量未定义。

3 个答案:

答案 0 :(得分:1)

这可能是因为您在启动之前正在访问它。尝试以零超时在超时中访问它,或者在激发“ ngOnInit”功能之后或之后访问它。 谢谢

答案 1 :(得分:0)

您在@ViewChild('your_Variable')内给出的内容用于html #your_Variable

将您component.ts更改为

@ViewChild('PaginatedTableComponent') userTable: PaginatedTableComponent;

然后将您component.html更改为

<pag-paginated-table #PaginatedTableComponent
       [(shouldUpdate)]="shouldUpdate"
       [route]="academyMembersRoute"
       [dataStructure]="academyMembersdataStructure"
       [adminActions]="adminActions"
       [include]="academyMembersInclude">
</pag-paginated-table>

答案 2 :(得分:0)

您尝试过吗:

setText()