【发布时间】:2014-04-11 17:56:27
【问题描述】:
我看到很多关于身份验证的教程都在 $rootScope 上放置了一个“auth”对象,包括来自 FireBase-people 的 AngularFire-seed。
我认为将对象放在根作用域上是一种不好的做法,而应该创建一个服务。为什么在身份验证方面(显然)没问题?或者更确切地说是一个更普遍的问题:什么时候可以将某些东西放在 rootscope 上,甚至是好的做法?
再举一个例子。我还有一个关于用户的配置文件对象。也可以将它添加到 auth-object 中吗?在这种情况下,我什至不会污染 rootscope,因为 auth-object 已经存在。可以像这样(通过 auth-object)将配置文件放在 rootscope 上吗?如果不是,为什么?
我知道,这是几个问题,但它们都归结为标题中的一个问题......
【问题讨论】:
-
我没有将整个 auth/session 对象放入 rootScope。我更喜欢将应用程序级控制器附加到 ,它提供调用包含身份验证数据的服务的范围方法。这样,它基本上仍然是“全局的”,但不在 rootScope 中。现在考虑到客户端拥有你所有的应用程序,与 rootScope 相比,在服务中拥有东西并不是更好或更安全,我认为它归结为你想要访问数据的位置和方式。将东西放入 rootScope 可以让它们从您的视图中全局访问。
-
如果数据对所有作用域真正通用,那么 $rootScope 是一个完全可以接受的放置数据的地方。
-
不错的 rootScope-altnerative @aet。我可能不会使用它,但很高兴知道替代品。
标签: angularjs