【发布时间】:2017-09-25 01:15:54
【问题描述】:
这又与 ExpressionChangedAfterItHasBeenCheckedError 有点关系。
在我的情况下,我有一个从 ajax 调用中恢复的参数“数据”。 此数据用于通过 @input 指令创建子项。我希望仅在定义数据时才发生绑定。但我不知道如何用角度来做到这一点
export class UserComponent{
data: any
constructor(
private userService: UserService){
this.userService.getUser()
.subscribe(result => {
this.data = result;
}
}
);
}
因为它的工作方式,angular会显示一个ExpressionChangedAfterItHasBeenCheckedError,我理解为什么,但是如何让angular等待回调完成并且数据是!=在开始绑定之前未定义,目标是让一些孩子使用来自数据库的真实值进行初始化。
如果我应该在绑定“真实”数据之前等待循环结束,那很好,但是如何在没有此错误的情况下执行此操作,(请不要使用setTimeout,因为它看起来很垃圾!) .
谢谢
<!--the template if it matter --><somechildtag [data]="data" ></somechildtag>
【问题讨论】:
-
stackoverflow.com/questions/39787038/… 上的每个答案对我的情况都没有帮助:s
-
你能在 Plunker 中复制吗?
标签: javascript angular