在设置应用程序路由器时,我向后端请求了一些数据:
App.Node = DS.Model.extend({
...
});
App.ApplicationRoute = Ember.Route.extend({
processReply: function ( ) { do some processing here; },
setupController: function (controller, model) {
this.cache = App.Node.find();
}
});
现在,当从后端收到find
的结果时,我想通过调用this.processReply()
进行一些数据处理
我如何听取find
请求的完成情况?我已经尝试插入.then
方法(假设find
返回一个保证),但这阻止了我的应用程序。
setupController: function (controller, model) {
var _this = this;
this.cache = App.Node.find().then(function(data) {
_this.process();
});
}
答案 0 :(得分:1)
setupController
挂钩不同, model
是同步的。您可以延迟从承诺中设置控制器的内容。因此,在加载数据后,控制器的绑定/计算属性将触发。
setupController: function(controller, model) {
App.Node.find().then(function(data) {
controller.set('content', data);
// optionally
// controller.process()
});
}