Ember.js “余烬数据”;TypeError:this.container未定义";
我正在尝试将当前用户加载到数据存储中,但遇到了一些困难。服务器使用PassportJS,访问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
/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。转换文档更加及时和正确。下面是一个简单的文档,展示了如何创建适配器(无需定义存储,它被注入所有控制器和路由)