【发布时间】:2011-12-20 05:21:00
【问题描述】:
我是 KnockOut JS 的新手,我找不到使用 jQuery text/x-jquery-tmpl 时数据绑定不起作用的原因。
使用:jQuery 1.5.2;淘汰赛1.3.0 beta
我正在尝试将无序列表绑定到视图模型中的可观察数组,并将列表项对象上的复选框绑定到另一个具有“已检查”绑定的 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 是测试版中引入的新方法。
-
只是出于好奇。我想知道我是否做错了什么,或者这只是一个错误的方法。 RP Niemayer 的回答:'它不会进行数据绑定或清理任何现有的绑定'解决了我的疑虑。
标签: knockout.js jquery-templates