Ember.js “余烬数据”;TypeError:this.container未定义";

Ember.js “余烬数据”;TypeError:this.container未定义";,ember.js,controller,ember-data,containers,store,Ember.js,Controller,Ember Data,Containers,Store,我正在尝试将当前用户加载到数据存储中,但遇到了一些困难。服务器使用PassportJS,访问/api/users/me返回一个类似于以下内容的JSON对象: {"user":{"_id":"53a4d9c4b18d19631d766980","email":"ashtonwar@gmail.com", "last_name":"War","first_name":"Ashton","location":"Reading, England", "birthday":"12/24/1993","ge

我正在尝试将当前用户加载到数据存储中,但遇到了一些困难。服务器使用PassportJS,访问
/api/users/me
返回一个类似于以下内容的JSON对象:

{"user":{"_id":"53a4d9c4b18d19631d766980","email":"ashtonwar@gmail.com",
"last_name":"War","first_name":"Ashton","location":"Reading, England",
"birthday":"12/24/1993","gender":"male","fb_id":"615454635195582","__v":0}}
我的商店是由
App.store=DS.store.create()定义的

要检索当前用户的控制器是:

App.UsersCurrentController = Ember.ObjectController.extend({
    content: null,
    retrieveCurrentUser: function() {
        var controller = this;
        Ember.$.getJSON('api/users/me', function(data) {
            App.store.createRecord('user', data.user);
            var currentUser = App.store.find(data.user._id);
            controller.set('content', currentUser);
        });
    }.call()
});
它由我的应用程序控制器调用:

App.ApplicationController = Ember.Controller.extend({
    needs: "UsersCurrent",
    user: Ember.computed.alias("controllers.UsersCurrent")
});
我怀疑行
App.store.createRecord('user',data.user')导致了问题,但我不知道如何修复它


控制台记录
TypeError:this.container未定义
,而Ember调试器显示每个承诺都已实现,并且用户。当前控制器没有内容。感谢您提供的帮助。

您是否在
应用程序
名称空间中定义存储,因为默认情况下,余烬数据不会这样做。无论哪种方式,都无法定义创建记录后要查找的类型

var currentUser = controller.store.find('user', data.user._id);
createRecord
返回记录,因此以后找不到它

var currentUser = controller.store.createRecord('user', data.user);
同样在您的示例中,您正在尝试立即对类型而不是实例调用函数。您应该将其添加为在init上运行的方法

App.UsersCurrentController = Ember.ObjectController.extend({
    retrieveCurrentUser: function() {
      console.log('hello')
        var controller = this;
        Ember.$.getJSON('api/users/me', function(data) {
            var user = controller.store.createRecord('user', data.user);
            controller.set('model', user);
        });
    }.on('init')
});

是的,我正在通过
App.store=DS.store.create()定义商店。我添加了要查找的类型,但这似乎没有什么区别。商店不应该这样定义。您使用的是旧版本的余烬数据吗?我正在使用当前版本。这些文件过时了吗?我不确定你所说的当前版本是什么意思,因为没有发布任何版本,但是是的,那些文档已经非常过时了。让我为您创建一个示例jsbin。转换文档更加及时和正确。下面是一个简单的文档,展示了如何创建适配器(无需定义存储,它被注入所有控制器和路由)