2013-02-19 55 views
1

我有這樣的模式:使用jsviews與數組長度

var taskGroups = 
[ 
    {name:"Notepad", tasks:[]} 
]; 

我的目標是在下面的格式列表中顯示的每個任務組:{名稱} {numOfTasks}

如果任務組有空任務[]它不應該顯示。

這裏是我的嘗試爲的jsfiddle: http://jsfiddle.net/ARS2E/

這裏是我的模板:

<script id="tmpl" type="text/x-jsrender"> 
    {{if tasks.length}} 
     <li class="tasklist-item">{{>name}} ({^{:tasks.length}})</li> 
    {{/if}} 
</script> 

這裏是我的javascript:

var taskGroups = [{name:"Notepad", tasks:[]}]; 
var lastID=0; 

$.templates({ tasklistTemplate: "#tmpl" }); 
$.link.tasklistTemplate("#tasklist", taskGroups); 

$("#btnAdd").on("click", function() 
{ 
    $.observable(taskGroups[0].tasks).insert(0, {taskID:++lastID}); 
}); 
$("#btnRemove").on("click", function() 
{ 
    if(taskGroups[0].tasks.length) 
    { 
     $.observable(taskGroups[0].tasks).remove(0, 1); 
    } 
}); 

我還沒有能夠得到這工作,我不知道我要去哪裏錯了。我非常感謝任何幫助。

回答

2

兩個問題:First, {{if tasks.length}}不是數據綁定的。如果你寫{^{if tasks.length}}它將被數據綁定。

其次,在jsfiddle中您錯誤的路徑爲jsrender.js - 它不是jquery.render.js