查看未更改observable已更改

时间:2015-09-01 14:51:33

标签: jsrender jsviews

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

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

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

1 个答案:

答案 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/