このコードを見てください...
```
App.BooksRoute = Ember.Route.extend({
model: return function () {
return this.store.find('books');
}
});
App.BooksController = Ember.ArrayController.extend({
actions: {
updateData: function () {
console.log("updateData is called!");
var books = this.filter(function () {
return true;
});
for(var i=0; i<books.length; i++) {
//doSomething…
}
}
}
});
```
updateData
外部から BooksControllerのアクションを呼び出したい。
このコードを試しました。
App.__container__.lookup("controller:books").send('updateData');
実際に動作します。ただし、updateData
アクションでは、テンプレートの {{action 'updateData'}} をクリックthis
して呼び出されたものとは異なります。updateData
books
{{action 'updateData'}} をクリックした場合、アクション中のthis.filter()
メソッドはupdateData
本モデルを返します。ただし、 を呼び出した場合、実行App.__container__.lookup("controller:books").send('updateData');
中のthis.filter()
メソッドはupdateData
何も返しません。
updateData
{{action 'updateData'}} をクリックして同じ動作で、BooksControllerのアクションを外部から呼び出すにはどうすればよいですか。
それについて知っていただければ幸いです。
(私は Ember.js 1.0.0 を使用しています)