Angularjs,在运行时设置价值服务的值
Angularjs, setting the value of a value service at runtime
我是Angularjs的新手。我正在我的个人网站上工作,正在使用angular。我希望人们能够登录。登录后,我想将用户名存储在一个valueservice中,这样它就可以一直使用。我能做吗?
我尝试在config()函数中执行此操作,但没有成功。我使用配置功能的原因是,我在这里检查用户是否已经登录
谢谢。
有两种基本的存储数据的方法,这些数据应该在Angular中全局可用。
第一种是将其存储在$rootScope上。rootScope是所有其他作用域的根(顾名思义),因此它在所有模板中都可用,并且可以注入到任何控制器/服务等中。它的使用方式与普通的$scope类似,因此登录服务会执行以下操作:
app.service('LoginService', ['$rootScope', function($rootScope) {
var user = {}; //Get the user somehow
$rootScope.user = user;
}
第二种方法是使用服务共享持久化数据。请参阅此处的答案以了解更多信息。
在这种情况下,我会说使用第一个,使用$rootScope。当你有应该在全球范围内可用的东西时,rootScope非常适合,如果你有应该只在应用程序的几个部分之间共享的东西,请使用服务。
调用登录服务的好地方是app.run()方法。当应用程序启动时,它会首先运行(我相信在配置之后除外)。
您不能在模块配置函数中设置服务值,但可以在模块运行块中进行设置
来自棱角分明的官方文件:
- 配置块-在提供程序注册和配置阶段执行只有提供程序和常量才能注入到配置块中这是为了防止在服务完全配置之前意外实例化服务
- 运行块-在创建注入器后执行,并用于启动应用程序只有实例和常量才能注入到运行块中这是为了防止在应用程序运行时进行进一步的系统配置
相关链接:http://docs.angularjs.org/guide/module
相关文章:
- 如何将新用户自动添加到AddThis服务以设置分析服务
- angular如何在我的情况下设置服务
- 在设置用户后,从 JavaScript JSON 请求中获取 Web 服务 (asmx) ASP.NET Windows
- 设置从服务中选择的 AngularJS 的初始值
- 将服务中的函数绑定到$scope(错误:无法设置undefined的属性'onChange')
- 我可以设置这个吗'某事'在该服务中动态创建的嵌套对象中的服务?(可能是范围问题)
- 如何在Angular中设置异步HTTP服务的回调,以便在不定义数组的情况下在控制器中填充数组
- Angularjs,在运行时设置价值服务的值
- 从控制器设置/获取服务中的数据
- 角度$scope首先设置值而不是服务,然后第二个函数调用一切正常
- 在 Angular JS 中设置和获取服务中的数据值
- 通过 REST 设置属性的 AngularJS 服务无法正确设置
- 如何使用角度休息服务设置超时回调事件
- AngularJS:在回调中设置私有服务变量
- 在$.ajaxSetup()中设置REST服务调用的主url,并且仅在后续调用中设置服务方法
- 如何设置服务以传递谷歌工作表ID?AngularJS
- 如何在调用异步Web服务响应时将值设置为数组
- 从AngularJS中的$http服务设置$scope值的最佳方式
- AngularJS$scope.foo是用服务设置的,但后来在同一个控制器中未定义
- Angular JS服务设置变量正确Javascript未定义