我试图在列表容器更新时重新呈现列表:
{^{for selectedScenario.instances}}
<div>{^{:name}}</div>
{{/for}}
当我使用$ .observable(data).setProperty(&#34; selectedScenario&#34;,scenario)时,没有任何变化。在http://jsfiddle.net/ep76m4af/1/中,您可以看到这一点。 ObserveAll显示数据本身已更新,并且事件已正确触发。
答案 0 :(得分:2)
它不起作用的原因是因为你正在使用“深度路径”selectedScenario.instances
- 默认情况下,只在叶级别“监听”可观察到的变化,而不是更深层次。要选择收听selectedScenario
对象中的更改,而不仅仅是叶instances
属性,您需要将.
替换为^
以表明您要倾听更深层次的道路:
{^{for selectedScenario^instances}}
<div>{^{:name}}</div>
{{/for}}
请参阅本文档主题中的路径:叶子更改或深层更改部分: http://www.jsviews.com/#observe
另请参阅本主题中的示例:带有普通对象和数组的JsViews示例:http://www.jsviews.com/#explore/objectsorvm。
在此处更新了jsfiddle:http://jsfiddle.net/ep76m4af/2/