【问题标题】:View not updating on observable changed查看未更新可观察到的更改
【发布时间】:2015-09-01 14:51:33
【问题描述】:

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

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

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

【问题讨论】:

    标签: jsrender jsviews


    【解决方案1】:

    它不起作用的原因是因为您使用的是“深层路径”selectedScenario.instances - 默认情况下,它仅在叶级别“侦听”可观察到的变化,而不是更深层次。要选择监听 selectedScenario 对象的变化,而不仅仅是叶 instances 属性,您需要将 . 替换为 ^ 以表明您想要在路径:

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

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

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

    在这里更新了 jsfiddle:http://jsfiddle.net/ep76m4af/2/

    【讨论】:

    • 感谢您向我指出有关深度路径的示例和文档。我以前读过它,但要花很多时间,所以我忘记了那部分..
    猜你喜欢
    • 2021-08-18
    • 2018-07-27
    • 2017-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-17
    • 2021-06-15
    • 1970-01-01
    相关资源
    最近更新 更多