这是我今天遇到的问题,想知道这是我做错了什么还是 Knockout 中的错误。
想象一下来自服务器的 3 种不同的视图模型状态:
State 1 = { AnObject: { WithString: "SomeText" } }
State 2 = { AnObject: null }
State 3 = { AnObject: { WithString: "DifferentText" } }
如果我这样做:
<p data-bind="text: AnObject.WithString"></p>
假设适当的 Knockout 绑定,我希望该元素的文本是“SomeText”,然后什么都没有,然后是“DifferentText”作为通过所有三个状态更新我的 KO 视图模型。
实际发生的是第一个状态工作正常(文本变为“SomeText”),然后在第二个状态下,文本没有改变,似乎绑定完全丢失了,因为在第三个状态下,文本仍然没有改变,即使现在有很好的使用价值。
这是一个演示该问题的 JSFiddle: