gpt4 book ai didi

javascript - Ember : store not available in Application. 初始值设定项

转载 作者:行者123 更新时间:2023-12-03 09:56:53 25 4
gpt4 key购买 nike

我已经实现了基于 this 的身份验证文章

因此,我在应用程序初始化时创建了一个 App.Session 对象:

    Ember.Application.initializer({
name: 'session',

initialize: function (container, application) {
App.Session = Ember.Object.extend({
init: function () {
this._super();
this.set('authToken', $.cookie('auth_token'));
this.set('authAccountId', $.cookie('auth_accountId'));
this.set('authAccountLanguage', $.cookie('auth_accountLanguage'));
},

authAccountIdChanged: function () {
var authAccountId = this.get('authAccountId');
$.cookie('auth_accountId', authAccountId);

//Load the actual account record from the server if the authAccountId is set
//Used to have for example the full name or other properties of the account
if (!Ember.isEmpty(authAccountId)) {
this.set('authAccount', this.store.find('account', authAccountId));
}
}.observes('authAccountId'),
...

我在 authAccountId 上有一个观察者;因此,每次更改 accountId(登录用户的 id)时,我都想检索该用户的所有详细信息(全名、首选项等)。

在 Ember 数据版本 1.0.0 之前,我使用的是:

this.set('authAccount', App.Account.find(authAccountId));

这成功了。现在我使用:this.set('authAccount', this.store.find('account', authAccountId));

我收到错误:Uncaught TypeError: Cannot call method 'find' of undefined。同样在调试器中,this.get('store') 导致未定义。我的印象是商店在 Application.initializer 中不可用。有人可以帮助解决这个问题吗?

最佳答案

您可以使用 container.lookup('store:main') 这将返回在容器中注册的商店:

var store = container.lookup('store:main');
this.set('authAccount', store.find('account', authAccountId));

关于javascript - Ember : store not available in Application. 初始值设定项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18697386/

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