查看不更新可观察到的变化
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 array:http://www.jsviews.com/#explore/objectsorvm.
在此处更新了 jsfiddle:http://jsfiddle.net/ep76m4af/2/
我正在尝试在更新列表容器时重新呈现列表:
{^{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 array:http://www.jsviews.com/#explore/objectsorvm.
在此处更新了 jsfiddle:http://jsfiddle.net/ep76m4af/2/