Angular 在 ngOnInit 上将 false 更改为 true

Angular change false to true on ngOnInit

我有一项服务,其中包含一组选定的 ID。当我初始化一个组件时,我会检查数组中是否存在该组件的 ID。但是,Angular 抛出一个异常,在视图检查后值已更改。

我试过在 this._checked = true 之后添加 detectChanges(),试过 markForCheck()。此外,我尝试将这两种情况移动到不同的生命周期挂钩但没有成功,除了它开始工作虽然抛出错误。

Angular 变化检测就像绞肉机,您正试图在此过程中改变肉。通常,markForCheck() 在这种情况下应该足够了。如果您 post 您的完整代码,我们可以尝试找出它在您的情况下不起作用的原因。如果都失败了,你总是可以这样做:

setTimeout(() => {
  this.youChanges();
  this.changeDetectorRef.markForCheck();
});