简体   繁体   English

保存模型时,EmberJS无法调用未定义的方法“查找”

[英]EmberJS cannot call method 'lookup' of undefined when saving model

I'm using Ember Data 1.0.0-beta1 and EmberJS 1.0.0. 我正在使用Ember Data 1.0.0-beta1和EmberJS 1.0.0。

When my save action 当我保存动作

App.UsersNewController = Ember.ObjectController.extend({
  actions: {
    save: function() {
      var self = this;
      self.content.save().then(function() {
        self.transitionToRoute('index');
      });
    },

    cancel: function() {
      this.content.deleteRecord();
      this.transitionToRoute('index');
    }
  }
});

is called, it throws an Uncaught TypeError 被调用,它将引发Uncaught TypeError

Uncaught TypeError: Cannot call method 'lookup' of undefined ember-data.js?body=1:6576
DS.RESTAdapter.DS.Adapter.extend.serializerFor ember-data.js?body=1:6576
DS.RESTAdapter.DS.Adapter.extend.createRecord ember-data.js?body=1:6492
_commit ember-data.js?body=1:2490
(anonymous function) ember-data.js?body=1:1991
Ember.EnumerableUtils.forEach ember.js?body=1:1786
DS.Store.Ember.Object.extend.flushPendingSave ember-data.js?body=1:1978
DeferredActionQueues.flush ember.js?body=1:5463
Backburner.end ember.js?body=1:5547
Backburner.run ember.js?body=1:5586
Ember.run ember.js?body=1:5917
ActionHelper.registeredActions.(anonymous function).handler ember.js?body=1:32781
(anonymous function) ember.js?body=1:19003
Ember.handleErrors ember.js?body=1:557
(anonymous function) ember.js?body=1:18995
jQuery.event.dispatch jquery.js?body=1:5096
elemData.handle

EDIT: Here's the route 编辑:这是路线

App.UsersNewRoute = Ember.Route.extend({
  model: function() {
    return this.store.createRecord('user');
  },

  setupController: function(controller, model) {
    controller.set('content', model);
  }
});

Model: 模型:

App.User = DS.Model.extend({
  email: DS.attr('string'),
  password: DS.attr('string'),
  passwordConfirmation: DS.attr('string')
});

Store: 商店:

App.Store = DS.Store.extend
  revision: 13
  adapter: DS.RESTAdapter.create()

Seems like your RESTAdapter does not have a reference to the container. 似乎您的RESTAdapter没有对该容器的引用。 Usually that would be set when ember creates the adapter - could be missing since you are creating an instance manually. 通常在ember创建适配器时设置-由于您是手动创建实例,因此可能会丢失。 Try changing your App.Store declaration to just use the default: 尝试将App.Store声明更改为仅使用默认值:

App.Store = DS.Store.extend({})

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM