2013-02-10 10 views
19

をクリーンアップ修正します救いません。は、私が編集して、新しい次の2つのルートを持っているコード

は現在、保存せずに新しいルートに直接、[編集]ルートとのIルートならば、私は次のエラーを取得する:

Uncaught Error: Attempted to handle event willSetProperty on while in state rootState.deleted.saved. Called with {reference: [object Object], store: , name: name}

+0

ルートの終了時に意味がありますか?あなたは次のようなものを探していますか:http://stackoverflow.com/questions/14797338/ember-clear-form-after-submitting –

+0

編集ルートから新しいルートに直接移行してから、モデル。 – dagda1

+0

ねえ、これは古い質問ですが、これを行う標準的な方法を理解しましたか? –

答えて

1

この質問は、燃えさしデータの古いバージョンのためですが、答えは持っているでしょうisDeletedの状態を最初にチェックし、レコードがまだ削除されていない場合にのみロールバックすることでした。

最新のemberデータにはトランザクションの概念はありませんが、まだ永続化されていないレコードをロールバックしようとしている場合でも同様の問題が発生します。

変更を保存するオプションをユーザーに与えたい場合は、移行を中止するなどの操作を行うことができるので、ルータのwillTransitionイベントでこれを実行します。

willTransition: function(transition) { 
    controller = this.get('controller') 
    if(controller.get('content.isDirty')) { 
    if(controller.get('content.isNew') && confirm('Closing this window will revert all unsaved changes.')){ 
     controller.get('content').deleteRecord(); 
    } else { 
     controller.get('content').rollback() 
    } 
    } 
    } 
関連する問題