2016-10-28 8 views
0

私はファクトリを使用して、サーバーからのデータから別のユーザーオブジェクトを作成しています。各user-objectには "userGroup"プロパティがあります。ビューのng-repeatを使用してユーザーのリストが表示されます。また、AngularJS 1双方向バインディングのため、userGroup-valueを "basic"から "admin"に変更することも可能です。したがって、オブジェクトの元の値はなくなります。ですから私の質問は、初期値{userGroup: "basic"}をどこに保存すればよいか、変更を取り消したいときです。 私は2つの解決策を考えていた:変更可能なオブジェクトの初期オブジェクトの値をAngularJSに格納する場所はどこですか?

  1. ユーザーファクトリクラスに追加プロパティ「initUserGroup」を作成し、各オブジェクト
  2. 利用のlocalStorageに値を保存する(最大20件のレコードを一度に保存する必要があります)

このような場合のベストプラクティスはありますか?

答えて

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); 
} 

この場合、現在のオブジェクトの外部にデータを保存する必要はありません。

+0

ありがとう、本当に素晴らしい解決策です! – dgraf

関連する問題