2015-07-13 53 views
1

this website我學會了寫一個應用程序控制器,這樣AngularJS:AngularJS - 應用程序的Controler

Codecademy網站版本:

app.controller 
(
    'PhotoController', 
    [ 
     '$scope', 'photos', '$routeParams', 
     function($scope, photos, $routeParams) 
     { 
      photos.success 
      (
       function(data) 
       {  
        $scope.detail = data[$routeParams.id]; 
       } 
      ); 
     } 
    ] 
); 

但我發現它也有可能是這樣的代碼:

我的版本:

app.controller 
(
    'PhotoController', 

    function($scope, photos, $routeParams) 
    { 
     photos.success 
     (
      function(data) 
      {  
       $scope.detail = data[$routeParams.id]; 
      } 
     ); 
    } 
); 

兩個代碼都可以工作,但有什麼區別?我應該使用codecademy還是我的版本?爲什麼?我的版本更短,我看不出任何缺點。

+2

即使在縮小腳本時,第一個版本也可以工作鏈接[https://docs.angularjs.org/tutorial/step_05] – trebor

+1

雖然代碼學院課程很好,但您應該仔細閱讀有關依賴性的角度文檔注射有關您的問題 - https://docs.angularjs.org/guide/di - 並檢查角手機卡教程 – Spade

回答

2

您的版本的問題是它不適用於縮小的代碼。你將不得不註釋你的控制器和其他模塊來使它工作。 你的代碼將工作,除非它尚未縮小,但縮小時,你的服務/控制器名稱將被重命名並破壞你的應用程序。

請參考以下鏈接瞭解更多信息:https://docs.angularjs.org/guide/di

1

隨着你的代碼的第二個版本,如果精縮由於與角必須變量被稱爲$scope, photos, $routeParams將無法​​正常工作。

如果您執行第一個版本,它將使用任何變量名進行依賴注入。