1

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

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

4

1 回答 1

0

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

setTimeout(() => {
  this.youChanges();
  this.changeDetectorRef.markForCheck();
});
于 2019-03-18T14:04:28.383 回答