gpt4 book ai didi

ember.js - Ember.js 中具有本地存储的全局变量

转载 作者:行者123 更新时间:2023-12-02 21:58:07 26 4
gpt4 key购买 nike

我遇到了一个让我兜圈子的问题,我想知道正确的解决方案。我可能还没有想到一些基本且明显的东西,但正如我对 Ember.js 所了解的那样,我非常感谢您的宝贵时间。

我想在 ember.js 中使用全局变量来存储用户 ID 和名称。

目前,我通过向应用程序 Controller 添加变量来完成此操作:

App.ApplicationController = Ember.Controller.extend({
//user name initially set to Tom
name:'Tom',
//using local storage - only works in modern browsers
userID: localStorage['userID']
});

问题1:在应用程序模板中,我可以使用{{name}}显示“name”变量。美好的。我还有一个“登录”模板,如何从登录模板访问“名称”变量?我尝试过使用 {{App.name}} 但这不起作用?我是否必须将应用程序 Controller 变量传递到登录 Controller ,如果是这样,我是否从登录路由器执行此操作?

问题2:从登录 Controller 设置userID,是否使用以下情况:

this.controllerFor('application').set('userID','Fred');

或者我应该使用:

 Ember.set('App.userID','Fred');

或者,我应该创建一个单独的用户 Controller 或者用户对象来存储这些数据吗?

最佳答案

您可以使用needs属性告诉ember您需要访问另一个 Controller ,然后您可以创建一个别名属性(本质上是创建对另一个属性的引用)。

App.LoginController = Ember.Controller.extend({
needs: ['application'],
userId: Ember.computed.alias('controllers.applications.userId')
});

然后从登录 Controller 您可以执行 this.set('userId', 'fred');

关于ember.js - Ember.js 中具有本地存储的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21318130/

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