树视图中的角度复选框

时间:2015-01-01 20:23:16

标签: javascript angularjs recursion checkbox tree

我找不到一个非常合适的指令来创建一个带有JSON结构复选框的树视图,所以我用一个自调用迭代器做了这个,如下所示:

http://jsfiddle.net/u2ho9d3j/

现在,我唯一遇到的问题是(看看第40行中的牛仔裤'数据是这样的:

"chk": true,

这当然标志着" Jeans" -checkbox,但不是上面的标记。这些值可以从数据库中得到正确的结果(即使上面的bransch也会有chk = true,但是我很好奇如何能够触发初始"起泡并将所有父母标记为已检查"如果某个项目标记为" true"。

有人可以帮助我了解如何做到这一点吗?

非常感谢!

了Christoph

1 个答案:

答案 0 :(得分:1)

我会以类似于setData函数的递归方式预处理树数据:

 function initTree(tree) {
   function processNode(node) {
     angular.forEach(node.children, function(child) {
       if(processNode(child) === true) {
         node.chk = true;   
       }
     });

     return node.chk;
   }

   angular.forEach(tree, processNode);
 };
 initTree($scope.tree);

请参阅更新的小提琴http://jsfiddle.net/65yucqge/

修改 这是另一个显示如何将复选框数据放入数组的小提琴: http://jsfiddle.net/tmakin/kmhw1ue0/