[英]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.