请看这段代码...
```
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
从外部调用 BooksController 上的操作,通过单击 {{action 'updateData'}} 具有相同的行为。
我将不胜感激。
(我使用的是 Ember.js 1.0.0)