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