所以,我加载了我的页面,我的列表项目带有唯一的ID。
<ul class="list-group" data-bind="template: { name: 'item-template', data: $root.items}">
<li class="list-group-item">
<span id="123" data-bind="text: item_name, attr: {'id': item_id}">Americanino</span>
<span class="glyphicon glyphicon-remove-circle" data-bind="click: $parent.removeItem"></span>
</li>
<li class="list-group-item">
<span id="223" data-bind="text: item_name, attr: {'id': item_id}">Asos</span>
<span class="glyphicon glyphicon-remove-circle" data-bind="click: $parent.removeItem"></span>
</li>
</ul>
我在页面加载后绑定属性
jQuery(document).ready(function($) {
var itemListModel = function() {
(...)
self.item_id = ko.observable();
(...)
}
ko.applyBindings(new itemListModel());
});
但是当我尝试删除从服务器
加载的列表项时// Remove item
self.removeItem = function(item) {
alert(self.item_id());
//self.items.remove(item);
}
然后我无法检索身份证。
如果我添加一个新项目,那么我可以获得该ID。但是如果我点击任何其他列表项,我也会获得相同的ID。
那么如何绑定&#34;静态&#34;内容?
这是一个问题,我有一个隐藏的输出,也有data-bind="value: item_id"
?
答案 0 :(得分:2)
修改您的create_list方法
function create_list(exiting_list){
var arr_list = [];
$(exiting_list).find('li').each(function(e,li){
var id = $(li).find('span').prop('id');
var name = $(li).find('span').html();
arr_list.push(new item(id, name));
});
return arr_list;
}
此处更新了小提琴 - http://jsfiddle.net/sherin81/JF55A/10/
实施了排序解决方案..更新了小提琴 - http://jsfiddle.net/sherin81/JF55A/11/