14

Ember Data モデルへの変更を簡単に元に戻す方法はありますか?

編集ビューにバインドされたモデルがあります。このビューを使用すると、ユーザーは編集をキャンセルできます。その時点で、モデルへの変更を元に戻したいと思います。サイドからすべての値を複製せずにこれを行う簡単な方法はありますか?

4

4 に答える 4

14

Ember Data バージョン 2 以降、トランザクションはなくなりましたが、次の方法で、エディションを保存する前の最後の状態にモデルをリセットできます。

model.rollbackAttributes();
于 2016-01-29T14:36:27.300 に答える
6

Ember Dataは、トランザクションの概念をサポートしています。トランザクションを作成し、Emberデータレコードをそれらに割り当てることができます。変更を元に戻したい場合は、transactions rollback()メソッドを呼び出すことができます。また、明示的なトランザクションを作成しない場合、レコードはデフォルトのトランザクションに割り当てられます。デフォルトのトランザクションは、DS.storeオブジェクト自体でrollback()メソッドを呼び出すことでロールバックできます。

于 2012-06-07T18:50:47.797 に答える
5

デフォルトのトランザクションの名前は「defaultTransaction」です。実際、Embers がコミットすると、このデフォルトのトランザクションが使用されます。ストアで直接ロールバックを直接使用することはできません。

store.rollback を使用する代わりに、次のようにする必要があります。

store.get('defaultTransaction').rollback()

または (ルーター イベント マネージャーを使用している場合)

event.get('store.defaultTransaction').rollback()
于 2013-01-07T22:02:31.443 に答える
3

モデルが「isDirty」状態の場合は、モデル自体をロールバックすることもできます。

this.get('model').rollback();

export default Ember.ObjectController.extend({

 actions: {
    cancelEditModel: function(){

        this.get('model').rollback();

        this.transitionToRoute('...');

        return false;
    }
  }
});
于 2015-01-12T10:59:45.487 に答える