查看不更新可观察到的变化

View not updating on observable changed

我正在尝试在更新列表容器时重新呈现列表:

{^{for selectedScenario.instances}}
     <div>{^{:name}}</div>
{{/for}}

当我使用 $.observable(data).setProperty("selectedScenario", scenario) 时,没有任何变化。在 http://jsfiddle.net/ep76m4af/1/ 中,您可以看到实际效果。 ObserveAll 显示数据本身已更新并且事件已正确触发。

它不起作用的原因是因为您正在使用 'deep path' selectedScenario.instances - 默认情况下 'listens' 仅在叶级而不是更深层次上观察到变化。要选择同时监听 selectedScenario 对象的变化,而不仅仅是叶 instances 属性,您需要将 . 替换为 ^ 以指示您想深入聆听路径中的更深层次:

{^{for selectedScenario^instances}}
     <div>{^{:name}}</div>
{{/for}}

请参阅本文档主题中的路径:叶更改或深度更改部分: http://www.jsviews.com/#observe.

另请参阅本主题中的示例,例如 示例:JsViews with plain objects and arrayhttp://www.jsviews.com/#explore/objectsorvm.

在此处更新了 jsfiddle:http://jsfiddle.net/ep76m4af/2/