angularjs - 带有 AngularJS 的 KendoUI Treeview 取消选中复选框

标签 angularjs kendo-ui kendo-treeview

我将 KendoUI (v2015.1.318) 与 AngularJS (v1.3.14) 一起使用。每次点击节点后,都会从 API 中获取数据。
选择一些项目并点击“添加”按钮后,项目将被添加到一个单独的列表中,展开的树节点必须保持可见,但所有的
选中的项目必须取消选中。

在我遍历数据源以取消选中选中的项目后,我再次调用了 SetDataSource。当我扩展了很多节点并检查了一些时,UI 在处理过程中会卡住几秒钟。

我想知道是否没有更有效的方法来执行此操作。

我做了一个没有API调用的例子:

    $scope.saveTreeFields = function () {
    var data = $scope.tree.dataSource._data;
    for (var i = 0, j = data.length; i < j; i++) {
        checkChildren(data[i]);
    }
    function checkChildren(data) {
        if (data.checked) {
            data.checked = false;
        }
        if (data.items !== undefined) {
            for (var i = 0, j = data.items.length; i < j; i++) {
                checkChildren(data.items[i]);
            }
        }
    }
     $scope.tree.setDataSource(data)
};

Plunker example

最佳答案

收到 Telerik 本身的答复。

you can call the dataItem set("checked", false) method to notify the model of the field change, and the TreeView will update automatically.



代码更改
    $scope.saveTreeFields = function () {
    var data = $scope.tree.dataSource.data();
    for (var i = 0, j = data.length; i < j; i++) {
        checkChildren(data[i]);
    }
    function checkChildren(data) {
        if (data.checked) {
            data.set("checked", false);
        }
        if (data.items !== undefined) {
            for (var i = 0, j = data.items.length; i < j; i++) {
                checkChildren(data.items[i]);
            }
        }
    }
};

关于angularjs - 带有 AngularJS 的 KendoUI Treeview 取消选中复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29556713/

相关文章:

javascript - 将数组列表复制到另一个数组列表

kendo-ui - Kendo ui模板的问题

kendo-ui - Kendo UI 多轴图表(具有气泡图和柱形图类型的混合图表)

c# - e.slice 不是 ASP.NET 中的函数

javascript - 一个使用另一个 promise 的 Angular promise ?

javascript - 如何在没有表单的情况下在 Angular js 中应用验证并检查所有字段是否应填写?

angularjs - [Angular JS]- 选项卡 Pane 示例 - 动态添加选项卡

javascript - Kendo UI 数据可视化 - 条形图 - 最小/最大 Y 轴值

kendo-ui - 剑道用户界面 : How to avoid server call when text entered in combobox is less than min length

asp.net-mvc - Kendo UI MVC 的密码文本框