2016-05-04 83 views
-1

我是角度初學者,我嘗試做這個教程(http://sahatyalkabov.com/create-a-tv-show-tracker-using-angularjs-nodejs-and-mongodb/

我使用John Papa的最佳實踐。所以,我不使用$ scope而是一個變量。 var vm = this;我的控制器和ui路由器上的

但在本教程中,有一次他使用$ rootScope。我已經看到這是不好的做法,但有時你必須使用。

在本教程中,您有沒有$ rootScope的另一種可能性,或者您沒有選擇?

謝謝!

回答

3

我很快檢查了鏈接,並注意到$ rootScope用於保存currentUser屬性。這種情況對服務和工廠來說更好,儘管誘惑力很強,但我儘量不要使用$ rootScope。

2

你說得對,使用$rootScope不是一個好習慣。

據我所知,在本教程中,他使用$rootScope僅用於在login上存儲currentUser(並在logout上刪除)。而已。

而且這種情況可以很容易地實現,根本不需要使用$rootScope。它需要更多的代碼,但並不困難。

如果你還好嗎寫更多的代碼,使你的代碼,而無需使用不好的做法,那麼你可以做一些事情如下:

您可以創建一個分開的服務:

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

      return userKeeper; 
     }); 

,然後就在Auth工廠中注入此服務,並將您的用戶保存在currentUser屬性中,而不是將其保存在您的$rootScope中。

+0

感謝您的回答,這是完美的! –

+0

不客氣!我很樂意提供幫助。 – MaKCbIMKo