我试图将当前用户加载到数据存储区,但遇到一些困难。服务器使用PassportJS和来访/api/users/me
返回类似这样的JSON对象:Ember-Data“TypeError:this.container is undefined”
{"user":{"_id":"53a4d9c4b18d19631d766980","email":"[email protected]",
"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 is undefined
,而Ember调试器显示每个承诺都已完成且users.current控制器没有内容。感谢您提供任何帮助。
是的,我通过'App.store = DS.Store.create()限定所述存储器;'。我添加了类型来查找,但这似乎没有什么区别。 –
这不是应该如何定义商店。您是否使用旧版本的Ember Data? https://github.com/emberjs/data/blob/master/TRANSITION.md – Kingpin2k
我正在使用当前版本。这些文档是否过时? http://emberjs.com/api/data/classes/DS.Store.html –