繁体   English   中英

什么时候可以在AngularJS中将对象存储在$ rootScope上

[英]When is it ok to store an object on $rootScope in AngularJS

我看到许多有关身份验证的教程,其中将“ auth”对象放在$ rootScope上,包括FireBase-people的AngularFire种子

我认为将对象放在rootscope上是一种不好的做法,而应该创建一个服务。 为什么在身份验证上这样(显然)可以? 或更笼统的问题是:什么时候可以在根窥镜上放一些东西甚至是个好习惯?

再举一个例子。 我在用户上还有一个配置文件对象。 也可以将其添加到auth-object吗? 在这种情况下,我什至不污染rootscope,因为auth-object已经存在。 可以像这样(通过auth-object)将配置文件放在rootscope上吗? 如果没有,为什么?

我知道,这是几个问题,但它们都归结为标题中的一个问题...

很有可能是因为原型继承在JavaScript中的工作方式。

例如:客户端在整个应用程序中都需要身份验证凭据,哪个地方比$rootScope更好? (除非您要在服务中添加该服务并将其注入所有工件中,否则除外)。 这就像ASPECT一样,可以解决承载身份验证数据的交叉功能。 通过在$rootScope添加与auth相关的数据,您可以轻松地从显然是从$rootScope继承的任何scope获取auth详细信息(由于原型继承)。

这对于具有隔离作用域的指令非常有用,但是对于隔离作用域,由于您获得了有效的2向绑定机制,爬升的壁也会很小。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM