次のようなルートでコンテンツが定義されている ArrayController があります。
App.UsersRoute = Ember.Route.extend({
model: function() {
return App.User.find();
},
setupController: function(controller, model) {
this._super(controller, model);
this.controllerFor('application').set('currentRoute', 'users');
}
});
そして、テンプレートにデータをリストします。
<ul>
{{#each user in arrangedContent}}
<li>
{{user.lastName}} {{user.firstName}}
{{#linkTo "users.edit" user class="btn btn-primary btn-small"}}EDIT{{/linkTo}}
</li>
{{/each}}
</ul>
それは正常に動作します。
新しいアイテムを作成すると、テンプレートのリストに自動的に追加されます。
App.UsersNewRoute = Ember.Route.extend({
model: function() {
return App.User.createRecord({firstName: '', lastName: ''});
}
});
しかし、「編集」ビューでアイテムを削除すると、機能しません:
App.UsersEditController = Ember.ObjectController.extend({
...
destroy: function() {
this.get('content').deleteRecord();
this.get('store').commit();
this.transitionToRoute("users.index");
}
});
しかし、「新規」ビューでは、新しく作成されたアイテムを削除すると、(コミットなしで) 機能します。
エディットコントローラーで「commit」を外すとリストが更新されるのですが、別のアクションをするとリストがリロードされ、削除した項目が再表示されます(正常)。
では、アイテムを削除するにはどうすればよいでしょうか。
注: 私は、ember と ember-data の「マスター」コードを使用し、今更新しました。