【发布时间】:2014-11-27 18:20:01
【问题描述】:
我是 Angularjs,但正在构建一个示例应用程序。当我阅读一些代码时,人们将事件广播为:
$rootScope.$broadcast('someevent');
例如登录时,许多人使用广播登录成功通知整个应用程序用户已登录。我知道登录状态可以使用 $rootScope 变量来管理,例如 $rootScope.logged = true 身份验证时成功,甚至使用可以注入控制器的AuthService。身份验证服务将返回用户状态和一些用户信息。
我的问题是:
1- 何时以及为何使用 $rootScope.$broadcast('someevent');
2- 使用全局变量或用户身份验证服务维护用户身份验证状态有什么缺点?
谢谢
【问题讨论】:
-
$rootScope变量和全局变量一样都是邪恶的。并且使用服务维护用户身份验证状态没有缺点;实际上,这是最好的解决方案。事件是廉价而肮脏的补丁。
标签: angularjs