我是KnockOut JS的新手,我無法找到使用jQuery text/x-jquery-tmpl時無法使用數據綁定的原因。數據綁定不能使用從JavaScript以編程方式設置的模板
使用:jQuery 1.5.2;淘汰賽1.3.0測試版
我想綁定一個無序的列表到視圖模型中的observable數組,並將列表項目對象上的複選框綁定到另一個具有「checked」綁定的ko.observble數組。
工作模板代碼爲:
<ul data-bind="foreach: viewModel.booksFromServer()">
<li>
<input type="checkbox" data-bind="checked: viewModel.selectedBooks(), value: Id" />
</li>
</ul>
這不起作用,顯示即列表中,但選擇的值不存儲在陣列中:
<script type=""text/x-jquery-tmpl" id="bookTemplate">
{{each data}}
<li>
<input type="checkbox" value="${Id}" data-bind="checked: selectedBooks" />
</li>
{{/each}}
</script>
在我的視圖模型:
var viewModel ={
selectedBooks = ko.observableArray(),
booksFromServer = ko.observableArray()
//other properties and methods
showBookList: function(bookList){
$("#bookTemplate").tmpl({data: bookList}).appendTo("#book_list");
}
}
你的想法是什麼?預先感謝您的幫助。 彼得
如果模板1工作,爲什麼你想讓模板2出於興趣?工作模板1是在測試版中引入的新方法。 – 4imble
這只是出於好奇。我想知道如果我做錯了什麼,或者只是一種錯誤的做法。 RP Niemayer的回答是:「它不會進行數據綁定或清理任何現有的綁定」解決了我的疑惑。 –