AngularJS中的2D数组$ Index

use*_*584 6 javascript angularjs angularjs-ng-repeat

我正在开发一个AngularJS应用程序,该应用程序使用该ng-repeat函数构建的2D数组构建电子表格.我正在编写一个函数,当用户在电子表格中输入新值时,该函数将更改数组的初始值.这要求我根据行索引和列索引访问初始数组中的点,以便将其更改为新值.

我查看了ng-repeat API,发现它有一个$index属性,允许我检查当前重复值的索引.但是,我发现它只会让我检查你所在的任何重复循环的值的索引 - 没有其他你可能也在的外部循环.

<script>

    data = [
            [A1, B1, C1],
            [A2, B2, C2],
            [A3, B3, C3]
           ]

    sheet= function($scope, $parse){
    $scope.columns = [colA, colB, colC];
    $scope.rows = data.length;
    $scope.cells = {};
    $scope.outer = data.map(function(c,row){
        return c.map(function(data, ind){
            return {
                content: data,
                model: null,
            };
        });
    });
    };
</script>


<div ng-app ng-controller="sheet">
    <table>
        <tr class="column-label">
            <td ng-repeat="column in columns">{{column}}</td>
        <tr ng-repeat="inner in outer">
            <td class="row-label" ng-repeat="data in inner">
                <div>
                    <input type="text" ng-model="data.content" value="{{data.content}}">
                </div>
            </td>
        </tr>
    </table>
</div>
Run Code Online (Sandbox Code Playgroud)

我想访问$indexouter,而内inner循环,还能够访问$indexinner,太.有没有办法做到这一点?我计划将这些值作为参数传递给我正在编写的函数.

Kar*_*les 12

哈哈,好吧,当我把小提琴放在一起的时候,在评论中回答了这个问题,但这里有一个人们在路上找到这个问题的演示:

http://jsfiddle.net/V8qzt/1/

<div ng-controller="MyCtrl">
  <table>
      <tr ng-repeat="row in data">
         <td ng-repeat="cell in row">
             {{cell}} ({{$index}},{{$parent.$index}})
          </td>
      </tr>
    </table>
</div>
Run Code Online (Sandbox Code Playgroud)