【问题标题】:jsviews reactive helper doesn't update with depends = [...] definedjsviews 反应式助手不会更新依赖 = [...] 定义
【发布时间】:2015-09-03 13:36:21
【问题描述】:

我指出的助手依赖于我的模型中的一个变量,并且我在模板中使用的助手在更新依赖的变量时不会重新呈现,如 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}}

将实例添加到 data.selectedInstances 时

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

视图不会相应更新。

我的代码的“.depends”部分不正确还是有其他问题?

顺便说一句,我需要将选择排除在场景之外,因为场景将存储在数据库中,并且选择仅限于客户端。

【问题讨论】:

    标签: jsrender jsviews


    【解决方案1】:

    将~root.selectedInstances 改为~root.selectedInstances.length 解决了问题

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-30
      • 2015-12-23
      • 2021-09-06
      • 2021-07-27
      • 2015-10-18
      • 1970-01-01
      • 2020-03-11
      相关资源
      最近更新 更多