我喜欢带有干净整洁复选框的gijgo树状视图,它解决了显示层次结构信息的目的。检查下面的链接以获取文档。
https://gijgo.com/tree/demos/bootstrap-treeview-checkbox
因为对于前端开发而言,首选tockout.js,所以需要针对此特定需求开发一个挖空绑定。
想法是从后端填充层次结构数据,并将其绑定到自定义的剔除绑定。
用户选择/取消选择某些复选框,然后单击“保存”按钮。选定/未选定的数据再次发送回服务器进行保存。
下面的代码是jquery中控件的用法。
函数tree.getCheckedNodes()
返回所选复选框的数组。
从敲除绑定中如何调用上述功能。
ko.bindingHandlers.tree = {
init: function (element, valueAccessor, allBindingsAccessor) {
},
update: function (element, valueAccessor, allBindingsAccessor) {
var options = valueAccessor() || {};
var value = ko.utils.unwrapObservable(valueAccessor());
var tree = $(element).tree(value);
}
}
答案 0 :(得分:1)
在init
方法中:
valueAccessor
$(element).tree({ /* ... */ })
初始化小部件.on("change", function() { }
)来跟踪用户输入
valueAccessor() (tree.getCheckedNodes())
)在update
方法中,如果您的视图模型的值更改,则会调用该方法
tree.check(ko.unwrap(valueAccessor()))
。确保更新是“无声的”,如果它会触发change
事件,那么您将陷入无限循环。