knockoutjs - object's changeTracker/dirtyFlag立即触发

knockoutjs - object's changeTracker/dirtyFlag triggering immediattly

本文关键字:dirtyFlag changeTracker object knockoutjs      更新时间:2023-09-26

我最近发现并在我的代码中成功地应用了changeTracker/dirtyFlag方法,一切都很好。非常整洁和有用。虽然,今天,我试图再次使用它和一些奇怪的事情发生了:somethingHasChanged触发器是触发一旦我打开页面。

我看了,找了,一无所获。设置跟踪器后,我没有对可观察对象进行任何更改。几个小时后,我找到了问题的根源:

其中一个可观察对象被绑定到一个<select>元素,从而设置当前选择的<option>

如果我删除这个绑定,它将不再触发。我不知道为什么会发生这种情况,因为该值只被读取(据推测)。

对此有什么想法吗?

我的猜测是,您绑定的是数值,当KO从DOM元素中读取它时,所选择的值作为字符串被写回视图模型。