我遇到淘汰赛的问题, 当我选中一个方框时,他们都被检查了......
这就是我所拥有的: _Categories_List包含所有项目, 和 My_categories是我想要添加每个ID的空列表
这是代码:
<!-- ko foreach: _Categories_List -->
<input type="checkbox" data-bind="attr: {value: $data}, checked: $root.My_categories" />
<span data-bind="text: CODE"></span><br />
<!-- /ko -->
这是代码的JS部分(我无法真正改变代码如何在文档中,因为我正在建立别人的工作,应该使用相同的代码 - 引用mapping.fromJS) :
var Poi = new Object();
Poi.My_categories = [];
var _Poi = ko.mapping.fromJS(Poi);
var Categories_List = [];
var _Categories_List = ko.mapping.fromJS(Categories_List);
$(document).ready
(
function () {
ko.applyBindings(_Poi);
// here there's an ajax function to load the categories returned in i_Input.My_Result, then:
ko.mapping.fromJS(i_Input.My_Result, _Categories_List);
}
);
这是从ajax加载的对象的样子:
{"My_Result":[
{"CODE":"chalet","DEF_POIS_CATEGORY_ID":2,"DESCRIPTION":"chalet","ENTRY_DATE":"2012-10-10","ENTRY_USER_ID":2,"OWNER_ID":1},
{"CODE":"vila","DEF_POIS_CATEGORY_ID":3,"DESCRIPTION":"villa","ENTRY_DATE":"2012-10-10","ENTRY_USER_ID":2,"OWNER_ID":1}
]}
答案 0 :(得分:0)
checked
绑定工作在输入元素的value
之外。在您的代码中,您将值设置为等于一个对象,该对象变为[object Object]
,因此您的两个输入都具有相同的值,这就是检查一个切换两者的原因。
因此,您希望将值设置为对象上的键,如CODE
属性。如有必要,您可以使用计算的observable来表示实际对象。