私は Ember を初めて使用し、コントローラーのプロパティの変更を観察するために Ember View を使用しようとしています。ビューをログに記録できますが、プロパティが変更されたときにハンドラーが起動しません。
私は基本的に、ユーザーがクリックしてレコードを削除したときにビューからアイテムを削除する Ember の方法を学ぼうとしています。これに関する本当に良いガイドは見つかりませんでした。アドバイスをいただければ幸いです。
何かを残している場合はお知らせください。前もって感謝します!
(これは継承されたコードベースです。まだ Ember をアップグレードする準備はできていません。)
Ember v1.0.0-rc.3
ルート
this.resource('posts');
App.PostsRoute = App.AuthenticatedRoute.extend({ // extension of Em.Route
model: function() {
return App.Post.list(); // returns a list of posts
},
events: {
// renders a modal in the post context
showDeleteModal: function(model) {
this.render('modals/_confirmation', {
into: 'posts',
outlet: 'modal',
controller: 'post'
});
this.controllerFor('post').set('model', model);
}
}
});
コントローラ
App.PostsController = Em.ObjectController.extend(App.PagedTable, Ember.Evented, {
// ...
});
App.PostController = Em.ObjectController.extend({
foo: false,
del: function() {
this.set('foo', true);
}
});
意見
App.PostsView = Em.View.extend();
App.PostView = Em.View.extend({
didInsertElement: function() {
console.log('Inserted!');
},
test: function() {
console.log('Observed!');
}.observes('controller.foo')
});
テンプレート
{{#each data in currentDataBlocks itemController="post" itemViewClass="App.PostView"}}
<tr>
<td>Stuff</td>
<td>Stuff</td>
<td>Stuff</td>
<td>Stuff</td>
<td><button class="icon-trash" {{action showDeleteModal data}}></button></td>
</tr>
{{/each}}
<!-- ... -->
{{outlet modal}}