gpt4 book ai didi

javascript - 在 AngularJS 中,在哪里存储可以更改的对象的初始对象值?

转载 作者:行者123 更新时间:2023-12-03 05:47:00 24 4
gpt4 key购买 nike

我正在使用工厂根据来自服务器的数据创建不同的用户对象。每个用户对象都有一个“userGroup”属性。在 View 中使用 ng-repeat 显示用户列表。由于 AngularJS 1 是双向绑定(bind)的,因此可以将 userGroup 值从“basic”更改为“admin”。所以Object的原始值就消失了。所以我的问题是:当我们想要取消所做的更改时,初始值 {userGroup: "basic"} 应该存储在哪里?我正在考虑两种可能的解决方案:

  1. 在用户工厂类中创建一个附加属性“initUserGroup”并为每个对象存储一个值
  2. 使用本地存储(一次最多只能保存 20 条记录)

对于此类情况有什么最佳实践吗?

最佳答案

例如,您可以在 _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);
}

在这种情况下,您不需要在当前对象之外保存数据。

关于javascript - 在 AngularJS 中,在哪里存储可以更改的对象的初始对象值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40301933/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com