我有一个html结构,其中每个孩子都有不同的长度值:
<div ng-repeat='element in treeView'>
<div ng-repeat='element1 in element.children'>
<div ng-repeat='element2 in element1.children'>
<div ng-repeat='element3 in element2.children'>
<div ng-repeat='element4 in element3.children'>
<div ng-repeat='element5 in element4.children'>
</div>
</div>
</div>
</div>
</div>
</div>我不喜欢多个ng-repeat。
如何重构代码结构?
发布于 2016-07-29 18:49:38
要递归地为treeView的所有子节点创建DOM节点,您可以创建一个新组件。
示例用法:
<your-directive elements="vm.elements"></your-directive>组件代码:
angular.module('yourApp')
.component('yourDirective', {
templateUrl: 'template.html',
bindings: {
elements: '='
},
bindToController: true,
controllerAs: 'vm'
});模板代码:
<div ng-repeat="element in vm.elements">
<your-directive ng-if="vm.elements.children.length > 0" elements="vm.elements"></your-directive>
</div>注意:我还没有测试过这段代码,但是稍加修改就可以让它正常工作了。
https://stackoverflow.com/questions/38656702
复制相似问题