我正在使用中型/大型应用程序,我们将当前用户数据和方法存储在服务上。因为我们需要整个应用程序的用户信息,所以将此服务附加到$rootScope
一次是不是一个坏主意?
在AppController
:
$rootScope.user = user.get();
而不是在Controller基础上添加它(在95%的控制器中):
$scope.user = user.get();
此外,是否有任何内存/性能影响?
谢谢!
答案 0 :(得分:3)
如果您将其存储在$rootScope
上,则可以在任何控制器中读取它而不会因原型继承而注入$rootScope
,但是有人决定制作新的$scope.user
在您的某个控制器中,您将失去对$rootScope
上的用户属性的引用,除非您已明确注入并直接引用$rootScope
。这可能会浪费某人的时间来尝试调试。
我认为约定是可以在$rootScope
上存储数据,但不存储函数。我不会依赖于子范围的原型继承,除非您至少在$rootScope
上创建一个模型对象,而被控制器覆盖的可能性很小,如$rootScope.globalData.user
或其他东西。