Angular ChangedAfterChecked 错误。什么值用于比较

Angular ChangedAfterChecked error. What values are used for comparision

在 angular 开发模式下执行检查以检查是否存在错误的属性更新。 这一定是通过相互检查两个值来完成的。此处考虑比较的值是什么?

示例:

<span>{{name}}</span>

因此要检查 name 哪些值与 angular 比较。何时或之后存储这些值以供比较?

我的理解... 更新绑定(插值或 属性 绑定等)时,更新后的值存储在某个位置。并且当更改检测周期完成时,将检查绑定的当前值与之前存储的值。这样对吗?

这篇文章帮助我理解了这个问题。

https://indepth.dev/posts/1001/everything-you-need-to-know-about-the-expressionchangedafterithasbeencheckederror-error

简而言之,无论何时由于插值或 属性 绑定而更新值时,都会将其保存为 Oldvalue。这可能发生在变更检测周期的不同时间点。这个旧值与当前值进行比较,而 运行 noChange 稍后检查。