使用ng-repeat-start和ng-repeat-end与嵌套转发器

时间:2014-09-25 21:45:18

标签: javascript angularjs

我尝试使用ng-repeat来浏览嵌套的树状数组。

Plunkr Here

HTML

<div layout></div>
<script type="text/ng-template" id="layout">
  <div class="layout" ng-repeat-start="data in data.nodes" ng-include="data.name"></div>
  <div ng-repeat-end>End of repeater</div>
</script>
<script type="text/ng-template" id="box">
  <div class="box">Box</box>
</script>

的JavaScript

var myApp = angular.module('myApp', []);
myApp.directive('layout', function() {

  return {
    templateUrl: 'layout',
    controller: function($scope) {
      $scope.data = {
        'nodes': [
          {
          'name': 'layout',
          'nodes': [{'name': 'box'}, {'name': 'box'}, {'name': 'box'}, {'name': 'box'}]
          }, 
          {
          'name': 'layout',
          'nodes': [{'name': 'box'}, {'name': 'box'}, {'name': 'box'}, {'name': 'box'}]
          }
        ]
      }
    }
  }
})

我的问题是我需要一种方法来计算出我在数组中特定级别的最后一项中的时间,但是由于Angular通过深度优先跟随递归,我无法使用ng-repeat-startng-repeat-end

Problem

预期结果当然是:

Expected outcome

我怎么知道自己是否处于特定级别的末尾?

1 个答案:

答案 0 :(得分:2)

您可以使用$last来确定每次迭代结束时的时间:

<div ng-show="$last" ng-repeat-end>End of repeater</div>

这会在你的问题中给我后一个结果。