0

次のエラーが表示されます。

loadedDatarootState.loaded.updated.uncommitted 状態でイベントを処理しようとしました。

私のコントローラーは本当にシンプルです:

App.JudgeController = Ember.ObjectController.extend({
    isEditing: false,

    edit: function() { this.set('isEditing', true); },
    done: function() { this.get("store").commit(); this.set('isEditing', false); }    
});

フォームが接続されています。簡略化されたバージョンは次のとおりです。

<button class="btn btn-link" {{action 'edit'}} {{bindAttr disabled='isEditing'}}>Edit</button>
{{#if isEditing}}
    {{view Ember.TextField placeholder="First Name" valueBinding="firstname"}}
    <button type="button" class="btn btn-primary" {{action 'done'}}>Done</button>
{{#if isEditing}}

上部にナビゲーションバーがあります。そのため、ユーザーはナビゲーション バーをクリックして、編集中に [完了] ボタンをクリックせずにページを離れることができます。その後、そのページに戻ると、冒頭で述べたエラーが表示されます。

これについてどうすればよいですか?私はたくさんのフォームを持っていますが、それらはすべて同様の問題を抱えています。ベストプラクティスはありますか?

ユーザーがナビゲートしたときにコントローラーのメソッドを呼び出す方法はありますか? 次に、ロールバックするか、ユーザーに警告を表示したり、ユーザーが離れないようにすることができます。

編集: 現在、Ember.js の RC5 を使用しています。しかし、私はそれをアップグレードすることに反対していません。私は willTransition ソリューションがあまり好きではありません (おそらくルーターにあるためですが、現在はすべてのロジックがコントローラーにあり、少し面倒です)。アップグレードする前に、他にどのような回答が得られるかがわかると思います。

4

1 に答える 1