* ng如果更改未在模板中检测到

时间:2019-11-12 08:12:15

标签: javascript angular typescript angular-ng-if

我正在尝试显示加载时间3秒钟,并使用*ngIf隐藏它。我使用的是angular8。在以前的项目中,我没有这个问题。

这是我的代码。

//Component.ts
loading = true;
ngOnInit() { 
   setTimeout(()=> {
     this.loading = false;
     console.log(this.loading)
   },3000)
}

//Component.html
<div *ngIf="loading" class="col-lg-12" style="text-align: center;">
     <app-loading></app-loading>
</div>

3秒后加载为假,但未在模板中检测到更改。我可以知道为什么吗?不使用ChangeDetectorRef

解决的任何建议

2 个答案:

答案 0 :(得分:4)

该示例应该有效,除非您使用OnPush更改检测策略:

答案 1 :(得分:1)

尝试这样:

Working Demo

if (root->left) {
    temp.push_back(root->val);
    help(root->left, sum - root->val, temp, result);
}    

if (root->right) {
    temp.push_back(root->val);
    help(root->right, sum - root->val, temp, result);
}