我有一个类似于 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/