如何在我更改的网格中保存行

9 angularjs ngresource

我使用ng-resource从我的服务器获取数据,然后将数据放入表格中,如下所示:

<div ng-form name="grid">
      <button type="submit" data-ng-disabled="grid.$pristine">Save</button>
        <div class="no-margin">
            <table width="100%" cellspacing="0" class="form table">
                <thead class="table-header">
                    <tr>
                        <th>ID</th>
                        <th>Title</th>
                    </tr>
                </thead>
                <tbody class="grid">
                    <tr data-ng-repeat="row in grid.data">
                        <td>{{ row.contentId }}</td>
                        <td><input type="text" ng-model="row.title" /></td>
                    </tr>
                </tbody>
            </table>
        </div>
</div>
Run Code Online (Sandbox Code Playgroud)

有没有办法让我这样做,以便单击Submit按钮检查网格中是否有更改的行,然后调用以putEntity(row)行作为参数的函数?

bre*_*ick 12

您可以通过几种方式执行此操作,并记住每个NgModelController都有一个$ dirty标志,可用于检查输入是否已更改.但我想说最简单的方法就是这样做:

编辑为HTML:

<input type="text" ng-model="row.title" ng-change="row.changed=true" />
<button ng-click="save()">Save</button>
Run Code Online (Sandbox Code Playgroud)

在JS中:

$scope.save = function () {
    // iterate through the collection and call putEntity for changed rows
    var data = $scope.grid.data;
    for (var i = 0, len = data.length; i < len; i++) {
        if (data[i].changed) {
            putEntity(data[i]);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)