2015-09-03 51 views
0

我已經表示的助手取決於我的模型中的變量,並且我在模板中使用不更新時依賴變量時重新顯示爲在http://jsfiddle.net/ep76m4af/3/jsviews被動helper不更新與取決於= [0123]

下面可以看到的是數據和模板助手定義:

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」部分不正確或者是其他錯誤?

順便說一句,我需要保持選擇擺脫場景,因爲場景將存儲在數據庫中,而選擇僅在客戶端。

回答

0

更改〜root.selectedInstances到〜root.selectedInstances.length解決了這個問題

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

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