如何使用递归包含在AngularJS中构建嵌套树

时间:2013-06-03 19:55:32

标签: angularjs

我正在尝试在AngularJS中构建一些递归包含自身的东西。每个WorkflowProcess都有子WorkflowProcess,我希望无限地包含这些树。

目前它看起来像:

enter image description here

它应该显示......

Approval
   |
   ---------
           |
      Impositioning

这是我的模板:

<div>
    <select ng-model="workflow" ng-options="workflow.name for workflow in workflows"></select>
</div>
<div class="tree">
    <ul>
        <div ng-repeat="workflowProcess in workflow.workflowProcesses" ng-include="'/partials/admin/workflow-tree-node.htm'"></div>
    </ul>
</div>

工作流的树note.html

<li ng-repeat="childWorkflowProcess in workflowProcess.workflowProcesses">
    <a>{{childWorkflowProcess.entity.name}}</a>
    <ul>
        <ng-include src="'/partials/admin/workflow-tree-node.htm'" />
    </ul>
</li>

一遍又一遍地显示“Impositioning”。我认识到这是因为html中的循环引用了相同的数据。我不知道如何让它只是引用下一层数据。

每个工作流都有一个属性workflowProcesses

1 个答案:

答案 0 :(得分:2)

我认为你只需要改变

<li ng-repeat="childWorkflowProcess in workflowProcess.workflowProcesses">
<a>{{childWorkflowProcess.entity.name}}</a>

<li ng-repeat="workflowProcess in workflowProcess.workflowProcesses">
<a>{{workflowProcess.entity.name}}</a>

让变量替换为子树中的子项。