-1

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

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

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

在本教程中,您是否有没有 $rootScope 的另一种可能性,或者您别无选择?

谢谢 !

4

2 回答 2

3

我快速检查了链接并注意到 $rootScope 用于保存 currentUser 属性。这种东西最好用服务和工厂,我尽量不使用 $rootScope,尽管诱惑很强烈。

于 2016-05-04T01:32:34.880 回答
2

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

据我了解,在本教程中,他$rootScope仅用于存储currentUseron login(并删除 on logout)。而已。

而且这种情况可以很容易地实现,而无需使用$rootScope。这将需要更多的代码,但这并不难。

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

您可以创建一个单独的服务:

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

           return userKeeper;
        });

然后只需将此服务注入您的Auth工厂并将您的用户保存在currentUser属性中,而不是将其保存在您的$rootScope.

于 2016-05-04T01:38:31.007 回答