在我的搜索组件中,我有一个带有属性绑定的表组件
<app-attributes-table [data]="data"></app-attributes-table>
我的搜索服务返回一个自定义类型的observable,搜索组件在更改处理程序中订阅并设置this.data
。这将更新表组件中的数据变量,该变量将显示为搜索结果。
this.searchService.getParts(this.search).subscribe(data => {
this.data = data;
}
完成后,表组件抛出以下错误:
检查后表情发生了变化。上一个值:'错误: 未定义”。当前值:'错误:未定义'。这似乎是观点 已经在其父母及其子女变脏之后创建 检查。它是否已在变更检测钩子中创建?
为什么认为表达式在检查后因前一个值和当前值相同而发生了变化?也许这是一个错误。
答案 0 :(得分:1)
如果在初始化视图后在子组件中再次运行更改检测,则不会引发错误。我不确定我是否正确理解了这种机制,这可能完全绕过它。
constructor(private changeDetectorRef: ChangeDetectorRef) { }
ngAfterViewInit() {
this.changeDetectorRef.detectChanges();
}