gpt4 book ai didi

javascript - 让 ember 在加载时解析 hasMany 关系

转载 作者:行者123 更新时间:2023-11-28 08:20:10 25 4
gpt4 key购买 nike

我目前面临一个大问题好几天了。我正在使用 ember simple-auth 插件,它为我提供了一个可通过代码或模板访问的 session 对象。该 session 对象存储帐户信息,例如用户名、ID 和权限。

我的模型是这样的:

App.Right = DS.Model.extend({
label: DS.attr('string', { defaultValue: undefined })
});

App.Right.FIXTURES = [
{
id: 1,
label: 'Admin'
}, {
id: 2,
label: 'Manager'
}, {
id: 3,
label: 'User'
}
];

App.User = DS.Model.extend({
username: DS.attr('string'),
rights: DS.hasMany('right', {async: true})
});

App.User.FIXTURES = [
{
id: 1,
username: "Someone",
rights: [1]
}
];

然后我有(如简单例份验证文档中指定的)此设置:

App.initializer({
name: 'authentication',
initialize: function(container, application) {
Ember.SimpleAuth.Session.reopen({
account: function() {
var userId = this.get('userId');
if (!Ember.isEmpty(userId)) {
return container.lookup('store:main').find('user', userId);
}
}.property('userId')
});
...
}
});

在我的一个观点中,我正在这样做:

this.get('context.session.account.rights').toArray()

但它给了我一个空数组。该代码段在 Ember.compulated 属性内执行。

问题是如何在渲染 View 之前解析帐户的子级?

最佳答案

由于 async: true this.get('context.session.account.rights') 将返回一个 Promise 对象,因此您必须使用 this.get('context.session.account.rights').then(. ..参见:http://emberjs.com/api/classes/Ember.RSVP.Promise.html#method_then

关于javascript - 让 ember 在加载时解析 hasMany 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23083470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com