JSviews反应式助手不会更新依赖= [...] 定义



我指示的helper依赖于模型中的变量,并且我在模板中使用的helper在更新依赖的变量时不呈现,如http://jsfiddle.net/ep76m4af/3/

所示。

下面是数据和模板帮助器的定义:

var data = {
    scenarios: scenarios,
    selectedScenario: scenarios[0],
    selectedInstances: [scenarios[0].instances[0]]
};
$.templates({
    scenariosTemplate: {
        markup: "#view",
        helpers: {
            isSelected: (function () {
                function helper (instance) {
                    return (data.selectedInstances.indexOf(instance) > -1);
                }
                helper.depends = [data, "~root.selectedInstances"];
                return helper;
            })()
        }
    }
});
这是相关的模板代码:

{^{for selectedScenario^instances}}
     <div data-link="{:name} selected{:~isSelected(#data)}"></div>
{{/for}}

在向数据中添加实例时。selectedInstances

$.observable(data.selectedInstances).insert(instance);

视图不会相应地更新。

是我的代码的"。depends"部分不正确或其他错误?

顺便说一句,我需要保持选择场景,因为场景将存储在数据库中,选择是客户端。

改变~root。selectedInstances变成~root.selectedInstances。长度解决了问题

 helper.depends = [data, "~root.selectedInstances.length"];

见http://jsfiddle.net/ep76m4af/4/