我正在使用工厂从来自服务器的数据创建不同的用户对象。每个user-Object都有一个“userGroup”属性。在视图中使用ng-repeat显示用户列表。由于AngularJS 1双向绑定,可以将userGroup-value从“basic”更改为“admin”。所以对象的原始值消失了。所以我的问题是:当我们要取消所做的更改时,应该在哪里存储初始值{userGroup:“basic”}? 我在考虑两种可能的解决方案:
此类案件是否有最佳做法?
答案 0 :(得分:1)
例如,您可以在_backup等属性中备份整个对象(使用angular.copy),如果要撤消更改,则还原(使用angular.extend)。这是一个例子:
$scope.editItem(item) {
item._backup = angular.copy(item);
}
$scope.undoEdit(item) {
angular.extend(item, item._backup);
//delete unused data
delete(item._backup);
}
在这种情况下,您不需要将数据保存在当前对象之外。