1
我有一個包含複選框項目的JavaScript viewmodel。在樹狀複選框列表中選擇的子項目
JavaScript是在這裏:
var data = [
{"name": "Computers",
"subcategories":[{"name":"Mac"}, {"name":"Desktop"}]},
{"name": "Mobile Phones" ,
"subcategories":[{"name":"Nokia"}, {"name":"Sony"}, {"name":"iPhone"}]}
];
var viewModel = {
categories: ko.observableArray(data),
selectedCategories: ko.observableArray()
};
ko.applyBindings(viewModel);
HTML代碼是這樣的:
<p>Categories: </p>
<div data-bind="foreach: categories">
<div>
<input type="checkbox" data-bind="checked: $parent.selectedCategories, checkedValue: $data.subcategories"/> <label data-bind="text: name"></label>
<ul data-bind="foreach: subcategories">
<li><input type="checkbox" data-bind="checked: $root.selectedCategories, checkedValue: $data"/> <label data-bind="text: name"></label></li>
</ul>
</div>
</div>
<p>Selected items: </p>
<div data-bind="text: ko.toJSON(selectedCategories)"></div>
當我點擊某個類別的主要複選框(計算機 )子類別(Mac,桌面)沒有填充。所以我應該再次cl Mac和桌面複選框,但重複插入選定項目的記錄。
這裏是jsfiddle
的代碼。
請在你的問題的代碼一樣,所以這個問題是不容易死鏈接。 – Jeroen
這個小提琴看起來不像您在問題中提供的代碼或UI。啊哈,你更新了你的小提琴而不改變鏈接:http://jsfiddle.net/barteloma/3HQyG/1/ –