树视图,选中全部或取消选中全部在挖空.js
Tree view with check all or uncheck all in knockout.js
我使用以下代码在挖空中制作了一棵树.js具有多级数据。
<ul data-bind="template: { name: 'itemTmpl', foreach: $data.items }"></ul>
<script id="itemTmpl" type="text/html">
<li>
<span data-bind="text: name"></span>
<input type='checkbox'>
<ul data-bind="template: { name: 'itemTmpl', foreach: $data.items }">
</ul>
</li>
</script>
但是现在我想以这种方式在淘汰赛中扩展它,如果我选中父级,那么它的所有子项都被选中,如果取消选中父子项,则取消选中。
Here is js fiddle link
http://jsfiddle.net/tEGUp/
我制作了一个不改变原始数据但使用 KO 映射的版本。
我还利用了操作来展示使用我的公约库编写的代码需要减少多少
MyApp.TreeViewModel = function(data) {
var mapping = {
items: {
create: function(options) {
return new MyApp.TreeViewModel(options.data);
}
}
};
this.checked = ko.observable(false);
this.checked.subscribe(this.onChecked, this);
this.items = ko.observableArray();
ko.mapping.fromJS(data, mapping, this);
};
MyApp.TreeViewModel.prototype = {
constructor: MyApp.TreeViewModel,
onChecked: function(checked) {
ko.utils.arrayForEach(this.items(), function(item) {
item.checked(checked);
});
}
};
- 用我的库 http://jsfiddle.net/u28CY/
- 没有 http://jsfiddle.net/u28CY/1/
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 使用agility.js进行页面布局和合成
- 使用Clipboard.js复制span文本
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 强制模板刷新ember.js
- 如何编写HTML输入的JS内联
- Angular JS IE9 Hashbang url rewriting
- 使用JS将数组转换为json对象
- Node.js v6.2.0类扩展不是函数错误
- Express.js和multer:如何知道文件何时全部上传
- 如何让Typeahead.js使用对象的一个字段而不是全部字段自动完成或选择
- 从Node.js UDP发送大量小数据包;Don’不要全部寄出去
- DeployJava.js 在仅安装 Java 8 时重定向一些(但不是全部)用户来安装 Java
- 我在 JS 中做错了什么?我需要每个元素的一个坐标,但不是全部
- 树视图,选中全部或取消选中全部在挖空.js
- 如果 JS 函数包含在 HTML 中,我如何在浏览器控制台中全部使用 JS 函数
- 选择全部-在Ext JS组合框中选择无
- 如何删除C3.js事件(不是全部)
- OpenID认证代码全部在JS中
- 用JS和I'I’我没有得到我想要的全部命令