javascript - 使用 ng-repeat 时如何仅更新特定行

标签 javascript angularjs mongodb angularjs-ng-repeat

我有一个类似于 Excel 的 UI,用户可以在其中更改他想要的任意行中的数据。 目前,我正在使用 ng-repeat 从 mongoDB 获取数据后显示现有数据。该数据是 Json Objects 数组,因此 ng-repeat 工作正常。 现在我想要一个保存按钮,单击该按钮,所有编辑都应该被保存。我的问题是如何维护或知道哪些行已更改?我可以发送整个数组并在数据库中更新,但是当行数很大并且只有一行的数据发生变化时,将会产生不必要的开销。所以让我知道如何优化。

提前致谢

最佳答案

将 ng-change 事件添加到可以编辑值的字段。

在 ng-change 上,在“objects 中的 obj”上设置新键“modified: true”。

类似这样的事情:

<div ng-repeat="row in rows track by $index">
    <input type="text" ng-change="markAsChanged($index)" ng-model="row.textValue">
</div>

还有你的 JS:

$scope.markAsChanged = function(index) {
    $scope.rows[index].changed = true;
}

然后您的更新函数可以迭代所有行并将更改的行发送到网络服务进行更新,而不是全部发送。

关于javascript - 使用 ng-repeat 时如何仅更新特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37648501/

相关文章:

javascript - IndexedDB 版本和 Dexie.js 的错误

javascript - 如何使用 json 数组填充 Rails 下拉菜单

javascript - 在自己的 JavaScript 对象中引用另一个对象

javascript - MongoDB 查找文档如果存在 - 更新否则 - 插入

mongodb - 如何将 SPSS 与 mongodb 连接

java - Spring Integration 轮询多个服务器上的入站 channel 适配器

javascript - 将每 3 个字母转换为大写

javascript - grunt build 出现 "Broken @import"错误?

backbone.js 和/或 knockout.js 中的 AngularJS 示例

javascript - 当使用 ng-class 设置名称时如何启动 AngularJs 指令