我应该如何绑定ng-repeat中对象的值?

时间:2015-12-16 12:41:38

标签: javascript angularjs

我有一个复杂的对象,我希望在我的页面中显示和编辑。

更具体地说,对于我的实际案例,我有一个具有<string, array>对的对象,其中array实际上是具有各种<string, int>对的对象的集合。

我尝试迭代这个复杂的结构:

      <div data-ng-repeat="(key, table) in TestData">
            <h3>{{key}}</h3>

            <table class="responsive-table">                    
                <tbody>
                    <tr data-ng-repeat="row in table">
                        <td data-ng-repeat="(label, value) in row" data-title="label">
                            <div>
                                <input data-ng-model="TestData[key][?][label]" data-ng-readonly="isEditable(label)" data-ng-change="show()" />                                    
                            </div>
                        </td>
                    </tr>
                </tbody>
            </table>

        </div>

我似乎没有办法找到我应该在模型中使用的值,因为我无法在第二次重复内部的结构中得到我的确切项目。

有没有办法达到我想要的目的?

2 个答案:

答案 0 :(得分:2)

重写show()功能:

$scope.show= function (row) {
   console.log("Test: ", row);
}

并将ngChange - 处理程序更改为data-ng-change="show(row);。这样,您就可以在show-function中更新模型。

答案 1 :(得分:0)

在ng-repeat中,你可以使用自己的范围

$scope.show= function () {
   console.log("Test: ", $scope.$parent.test);
};

接收您期望的结果