我正在开展Angular项目,似乎自动更改检测已停止工作。
为了验证这一点,我创建了一个新的Angular项目并添加了一部分代码,让我意识到自动更改检测不起作用。
这很简单:
export class ConfirmEmailPageComponent implements OnInit {
loaded: boolean = false;
constructor(
private accountService: AccountService,
private route: ActivatedRoute,
private cdr: ChangeDetectorRef
) {}
ngOnInit() {
this.accountService
.confirmEmailAddress(this.route.snapshot.queryParams)
.subscribe(
d => console.log(d),
err => console.log(err),
() => {
this.loaded = true;
//this.cdr.detectChanges();
}
);
}
}
在我刚刚放置的模板中
{{ loaded | json }}
在请求完成后查看它是否变为true。
虽然它适用于新项目,但在我的旧项目中,我需要取消注释
this.cdr.detectChanges();
它开始起作用。
项目已经相当大,所以我需要逐个添加到新项目:/
有没有办法找出代码的哪一部分打破了自动更改检测?
答案 0 :(得分:0)
结果我犯了一些错误,设置了我的认证。我仍然不明白为什么会发生这种情况,而且我还在使用ChangeDetectorRef的detectChanges函数来解决这个问题。我实际上认为整个自动更改检测已损坏。