一旦REST请求完成,就触发一个函数

时间:2013-07-10 16:07:19

标签: ember.js

在设置应用程序路由器时,我向后端请求了一些数据:

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();
        });
    }

1 个答案:

答案 0 :(得分:1)

setupController挂钩不同,

model是同步的。您可以延迟从承诺中设置控制器的内容。因此,在加载数据后,控制器的绑定/计算属性将触发。

setupController: function(controller, model) {
  App.Node.find().then(function(data) {
    controller.set('content', data);
    // optionally
    // controller.process()
  });
}