次のエラーが表示されます。
loadedData
rootState.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 ソリューションがあまり好きではありません (おそらくルーターにあるためですが、現在はすべてのロジックがコントローラーにあり、少し面倒です)。アップグレードする前に、他にどのような回答が得られるかがわかると思います。