如何找出Angular自动更改检测的内容?

时间:2018-05-23 04:04:29

标签: angular

我正在开展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();

它开始起作用。

项目已经相当大,所以我需要逐个添加到新项目:/

有没有办法找出代码的哪一部分打破了自动更改检测?

1 个答案:

答案 0 :(得分:0)

结果我犯了一些错误,设置了我的认证。我仍然不明白为什么会发生这种情况,而且我还在使用ChangeDetectorRef的detectChanges函数来解决这个问题。我实际上认为整个自动更改检测已损坏。