我是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的回答是:“它不会进行数据绑定或清理任何现有的绑定”解决了我的疑惑。 –