Ember-CLI升级导致应用程序路由承诺解析错误

时间:2014-09-14 23:06:45

标签: ember.js ember-cli

我刚从ember-cli 0.0.42升级到0.0.44,现在我的应用程序路径上的模型钩子出错了

Error while processing route: profile.index undefined is not a function TypeError: undefined is not a function at Ember.Mixin.create.extractSingle (http://localhost:4200/assets/vendor.js:63379:25) at apply (http://localhost:4200/assets/vendor.js:32449:27) at superWrapper [as extractSingle] (http://localhost:4200/assets/vendor.js:32024:15) at Ember.Object.extend.extractFind (http://localhost:4200/assets/vendor.js:65641:21) at Ember.Object.extend.extract (http://localhost:4200/assets/vendor.js:65526:37) at http://localhost:4200/assets/vendor.js:73793:34 at tryCatch (http://localhost:4200/assets/vendor.js:59657:16) at invokeCallback (http://localhost:4200/assets/vendor.js:59669:17) at publish (http://localhost:4200/assets/vendor.js:59640:11) at http://localhost:4200/assets/vendor.js:42159:9

我不知道这与ember-cli有什么关系,但如果我在0.0.42上没有问题。

我的申请途径:

model: function() {
  var preloadedUser = window.PreloadStore.get('currentUser');

  return Ember.RSVP.hash({
      currentUser: this.store.find('user-profile', preloadedUser.id)
  });
},

setupController: function(controller, model) {
  this.controllerFor('currentUser').set('model', model.currentUser);
}

应用程序路由中返回的任何承诺似乎都会导致错误。对象文字不会触发错误,所有子路径都可以正常使用promises。

Ember      : 1.8.0-beta.1 vendor.js:28327
Ember Data : 1.0.0-beta.8.2a68c63a 

我正在使用RESTAdapter,有效负载是:

{"userProfiles":{"id":"d1bdd26a-25b9-40d4-a166-4ec2e66bee70","prefix":null,"first":"Ryan","middle":null,"last":"Hirsch","manager":null}}

为什么承诺应用程序路由解析错误的任何想法或想法?

1 个答案:

答案 0 :(得分:0)

您的有效负载并非完全采用数据所期望的格式。你需要添加一个序列化器,就像这样。

DS.RESTSerializer.extend({
   extractSingle: function(store, type, payload, id) {
    var profiles = payload;

    payload = { userProfiles: [payload] };
    return this._super(store, type, payload, id);
  },
});

我不确定确切的格式,定制它来修复它。