我觉得我正在做的是非常基本的但我每次都得到一个未定义的对象,我有一个名为Example的应用程序,并定义了一个ApplicationRoute:
Example.ApplicationRoute = Em.Route.extend({
model: function() {
var user = this.store.find('user',1);
console.log("username: " + user.username);
return { user: user };
}
});
和我的模特:
var attr = DS.attr
Example.User = DS.Model.extend({
//logged in state can be loggedIn, loggedOff, pending, failed
loggedInState: attr('string'),
token: attr('string'),
username: attr('string'),
firstName: attr('string'),
lastName: attr('string'),
email: attr('string'),
isLoggedIn: Em.computed.match('loggedInState', /loggedIn/)
});
最后一个FIXTURE:
Example.User.FIXTURES = [
{
id: 1,
username: 'jxnagl',
loggedInState: 'loggedOn',
firstName: 'Jared',
lastName: 'Nagle',
token: '1234',
email: 'jared.nagle@example.com'
}
]
据我了解,在应用程序路径中调用模型挂钩时,此FIXTURE将出现在商店中。但是当我访问我的应用程序时,我在控制台中收到以下消息:
"username: undefined"
我有什么遗失的东西吗? Ember的文档显示了类似的例子,我没有看到差异。
答案 0 :(得分:1)
“find”返回promise。
var user = this.store.find('user', 1).then(function(user){
console.log('username: ' + user.get('username'));
});
我认为您的路线应该像
Example.ApplicationRoute = Em.Route.extend({
model: function() {
return this.store.find('user',1);
}
});
答案 1 :(得分:0)
我认为这里的问题是我依赖的ember-auth插件。它以某种方式干扰了我的申请。删除此插件解决了我的问题。 :)