AngularJS使用$ rootscope的最佳实践?

时间:2016-05-04 00:19:55

标签: angularjs node.js mongodb angularjs-rootscope

我是角色的初学者,我尝试做这个教程(http://sahatyalkabov.com/create-a-tv-show-tracker-using-angularjs-nodejs-and-mongodb/

我使用John Papa的最佳实践。所以,我不使用$ scope而是使用变量。 我的控制器和ui-router上的 var vm = this;

但是在本教程中,他有一次使用$ rootScope。我已经看到这是不好的做法,但有时你必须使用。

在本教程中,如果没有$ rootScope或者你没有选择,还有其他可能吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

我快速检查了链接并注意到$ rootScope用于保存currentUser属性。这种事情在服务和工厂方面都比较好,我尽量不使用$ rootScope,尽管诱惑力很强。

答案 1 :(得分:2)

你是对的,使用$rootScope不是一个好习惯。

据我了解,在本教程中,他仅使用$rootScopecurrentUser上存储login(并在logout上删除)。就是这样。

这种情况很容易实现,而根本不使用$rootScope。它需要更多的代码,但并不是那么困难。

如果您可以编写更多代码并在不使用不良做法的情况下编写代码,那么您可以执行以下操作:

您可以创建单独的服务:

angular.module('MyApp')
       .service('UserKeeper', function($) {
           var userKeeper = {
               currentUser:{}
           };

           return userKeeper;
        });

然后只需在Auth工厂中注入此服务,并将用户保存在currentUser媒体资源中,而不是将其保存在$rootScope