我应该如何在ng重复中绑定对象的值

How should I bind values of an object inside an ng-repeat?

本文关键字:绑定 对象 ng 我应该      更新时间:2023-09-26

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

更具体地说,对于我的实际情况,我有一个具有<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>

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

有办法实现我想要的吗?

您不应该直接绑定到基元。您可以使用$index绑定到数组项:

<div ng-repeat="item in test track by $index">
   <input data-ng-model="test[$index]" data-ng-change="show()" />
</div>

重写show()函数:

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

并将CCD_ 6-处理程序更改为CCD_。通过这种方式,您可以在show功能中更新您的模型。

在ng repeat中有一个自己的作用域,您可以使用

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

要接收您期望的结果