残り火リストと編集フォームがあります。リストの選択された項目が変更されるたびに、編集フォームは変更を破棄し、新しいモデルをロードします。
私の問題は、deactivateイベントが発生しないため、変更を破棄する方法がないことです。
たとえば、url/favs/123/edit
からurl/favs/456/edit
非アクティブ化(および終了)イベントに移行しても発生しません。したがって、変更を適切に破棄する方法はありません。
これが私が参照している私のコードの一部です:
App.Router.map(function() {
this.resource('favs', { path: '/favs' }, function() {
this.route('new');
this.route('edit', { path: ':fav_id/edit' })
});
});
[...]
App.FavsEditRoute = Ember.Route.extend({
deactivate: function() {
var model = this.get('currentModel');
if(model && model.get('isDirty')) {
model.get('transaction').rollback();
}
},
model: function(params) {
return App.Fav.find(params.fav_id);
},
});