我正在尝试获取已登录的用户(来自/users?current=1
工作),并在整个应用程序中将该用户作为属性提供,而不是注入我的用户我正在注入此内容:
Object { type: makeCtor/Class(), query: Object, content: Getter, store: Object, manager: Object, isLoaded: true, meta: Object, 3 more… }
那就像完全一样,看起来不像我想要的那样。该记录在商店中出现就好了。这是相关的代码。谢谢你的期待。
App.initializer({
name: "appUser",
after:['ember-data'],
initialize: function (container, application) {
var store = container.lookup('store:main');
store.find('user',{current: "1"}).then(function(data){
var user = data; //data.get('content')[0] (?) (Something else?)
application.register("my:user", user, {instantiate:false});
application.inject("controller", "user", "my:user");
application.inject("route", "user", "my:user");
});
}
});
答案 0 :(得分:2)
集合有一个属性(firstObject
),它将返回集合中的第一个项目,或者未定义。
当您在控制台中查看模型时,您需要小心思考模型应该是什么样子。它隐藏了子属性中的属性,并在使用getter时返回它们,并在使用setter时设置它们。这完全是为了回滚的能力。
App.initializer({
name: "appUser",
after:['ember-data'],
initialize: function (container, application) {
var store = container.lookup('store:main');
store.find('user',{current: "1"}).then(function(data){
var user = data.get('firstObject');
console.log(user.get('first_name')); // use getters to view the properties
application.register("my:user", user, {instantiate:false});
application.inject("controller", "user", "my:user");
application.inject("route", "user", "my:user");
});
}
});