当ng-repeat嵌套在AngularDart中时访问外部$ index

Pat*_*lin 10 dart angular-dart

请考虑以下嵌套ng-repeat指令:

  <tr ng-repeat="r in SomeExpr1">
    <td ng-repeat="c in SomeExpr2">
      <p>c index is {{$index}}, r index is {{???}}</p>
    </td>
  </tr>
Run Code Online (Sandbox Code Playgroud)

如何访问$index外部ng-repeat(即内部ng-repeat作用域隐藏的父作用域中的外部$index)?

Gün*_*uer 17

正如@Randal Schwartz在这篇文章 $parent中指出的那样.

<div ng-controller='demo-ctrl'>
  <div ng-repeat="row in ctrl.matrix">
    <div ng-repeat="column in row">
      <span>outer: {{$parent.$index}} inner: {{$index}}</span>
    </div>

  </div>
</div>
Run Code Online (Sandbox Code Playgroud)


Ran*_*rtz 5

你需要ng-initAngular.js.可悲的是,这还没有移植过,但是如果有效的话,它看起来会像这样:

<script>
  function Ctrl($scope) {
    $scope.list = [['a', 'b'], ['c', 'd']];
  }
</script>
<div ng-controller="Ctrl">
  <div ng-repeat="innerList in list" ng-init="outerIndex = $index">
    <div ng-repeat="value in innerList" ng-init="innerIndex = $index">
       <span class="example-init">list[ {{outerIndex}} ][ {{innerIndex}} ] = {{value}};</span>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

(通过http://docs.angularjs.org/api/ng/directive/ngInit)