2013-03-25 44 views
0

我遇到了一个问题,我无法在互联网上的任何地方找到答案。我试图在AngularJS中动态创建一个类别列表,我不知道正确的多少级别。这些值是从数据库中获取的,具有parentID,每个元素可以有一个或多个子元素。AngularJS动态多级重复

我之前使用过ng-repeat来创建两级列表,但我不知道如何添加更多级别,而不需要像正手所需的那样重复多次重复。我知道如何在php中执行此操作来生成数据,但这不是我想要完成的。

我可能需要使用指令或某种类型的指令,但我需要有人指点我正确的方向。

在这个庞然大物中有一种解决方案:http://plnkr.co/edit/NBDgqKOy2qVMQeykQqTY?p=preview 但我认为这是一个非常脏的修复,我真的在寻找一个更好的解决方案。

谢谢你的任何提示或提示。

亲切的问候, Kjetil。

+1

看看在这个岗位http://stackoverflow.com/questions/11854514/is-it-possible-to-make-a-tree-view-with-angular – charlietfl 2013-03-25 13:07:43

+0

演示这是不是一个肮脏的修复。这可能是正确的做法。你为什么觉得它很脏?它使用递归的概念,这是你如何渲染树组件。 – ganaraj 2013-03-25 14:18:28

回答

0

您可以创建一个指令,决定将会有多少级别,并在链接函数中构建/ $compile模板。有关how to create a directive here的更多信息。

app.directive('categoryList', function($compile) { 
    return { 
    link: function(scope, elm, attr) { 
     scope.$watch('somethingThatShowYouShouldRebuild', function() { 
     // all the log that figures aout how many levels (a recursive function probably) 
     // that will build the HTML template with all nested ng-repeat's 
     var template = // ... 
     elm.html(template); 
     $compile(elm)(scope); 
     }); 
    } 
    } 
});