Javascript 具有角度方向的树视图

Javascript 具有角度方向的树视图,javascript,angularjs,treeview,Javascript,Angularjs,Treeview,我相对较新的角度,所以请原谅我的错误,如果有的话。我必须修改并使用来自的这个treeview指令。它的代码看起来很有前途,但我必须对其进行一些修改,以添加添加/删除或修改项的功能 我以前使用jQuery创建我的treeview,并完成了所有相关任务。但既然我决定转向角度,我就必须用角度的方式 据我所知,该指令使用嵌套递归指令创建树,这是一种有效的方法。它工作得很好,但我会在我的树状视图中显示大约3000-4000个项目。因此,当我用这段代码做这件事时,它会减慢屏幕速度,并由于许多手表表达式(每

我相对较新的角度,所以请原谅我的错误,如果有的话。我必须修改并使用来自的这个treeview指令。它的代码看起来很有前途,但我必须对其进行一些修改,以添加添加/删除或修改项的功能

我以前使用jQuery创建我的treeview,并完成了所有相关任务。但既然我决定转向角度,我就必须用角度的方式

据我所知,该指令使用嵌套递归指令创建树,这是一种有效的方法。它工作得很好,但我会在我的树状视图中显示大约3000-4000个项目。因此,当我用这段代码做这件事时,它会减慢屏幕速度,并由于许多手表表达式(每个项目5-7个)而消耗大量内存

我尝试过一次使用::符号在ng repeat中绑定。这有很大帮助,但现在我无法实现我的添加或更新方法。我有没有办法做到这一点

<li data-ng-repeat="node in ::' + treeModel + '">
  • 您在作用域中已经有了选定的节点,因此只需将新节点推送到它的子数组中即可

    $scope.AddNode = function(NewNode)
        {
            NewNode = {"roleName" : NewNode , "roleId" : "role11", "children" : []};
          $scope.mytree.currentNode.children.push(NewNode);
        };
    

    编辑:顾名思义-它是一次性绑定,所以添加/删除在这里不起作用。我认为浏览器在一次显示如此多的数据时会有点卡住是正常的。相反,您可以按位添加节点,比如说一步添加20个节点。或者你也可以去其他图书馆看看。允许您选择显示首先折叠的节点阵列。

    感谢您的编辑。是的,一次性绑定不允许编辑或修改数组。也如您所说,按位添加节点。我已经打算在用户单击后异步添加子项。但是假设一个节点有100个子节点(它应该有)。那会使树慢下来。这就是问题所在。