EmberJS $ .ajax记录获取在setupController中为模型返回undefined

时间:2014-09-09 21:04:34

标签: javascript ajax ember.js ember-data

Ember-Data很棒,但是我需要一些自定义内容来通过invitation_token获取用户,但也完全在后端Rails端调用不同的控制器操作。

这是我的路线:

MyEmberApp.InviteRoute = Ember.Route.extend({
  model: function(params) {
    var self = this;
    var user;
    $.ajax({
      type: 'GET',
      url: 'api/v1/users/invite?invitation_token=' + params.token,
      success: function(response) {
        user = self.store.createRecord('user', response.users[0]);
        console.log(user);
        return user;
      },
      error: function(response) {
        console.log("Something went wrong.");
      }
    });
  },
  setupController: function(controller, model) {
    controller.set('model', model);
    console.log(model);
  },
});

setupController console.log(model)未定义 - 这是因为我正在使用$.ajax来电吗?你有什么建议我这样做?我无法使用纯粹的余烬数据,因为我需要在每个轨道控制器的基础上保护和授权用户。

1 个答案:

答案 0 :(得分:2)

您错过了退货声明。

  model: function(params) {
    var self = this;
    var user;
    return $.ajax({
      type: 'GET',
      url: 'api/v1/users/invite?invitation_token=' + params.token,
      success: function(response) {
        user = self.store.createRecord('user', response.users[0]);
        console.log(user);
        return user;
      },
      error: function(response) {
        console.log("Something went wrong.");
      }
    });
  },