搜尋

首頁  >  問答  >  主體

angular.js - Angular中關於控制器編寫方式的問題

我是Angular初學者,在學習中有個關於定義控制器的寫法問題。

在剛接觸的時候,書上是這樣寫控制的:

var myApp = angular.module('MyApp', []);
myApp.controller('MyController', function($scope){
  // todo...
})

後來在一些網路上的文章,是這樣寫的:

var myApp = angular.module('MyApp', []);
myApp.controller('MyController', ['$scope', function($scope){
  // todo...
}]);

那麼問題來了,後者加了個[],是個什麼意思?這兩種寫法有什麼不同呢?

在練習中發現同樣的實作用這兩種都可以。

阿神阿神2744 天前472

全部回覆(2)我來回復

  • 大家讲道理

    大家讲道理2017-05-15 17:04:43

    第二種寫法叫inline-annotation,看文檔依賴注入

    這種寫法的主要目的是為了避免源碼壓縮(uglify)時變數名被替換,導致依賴注入失敗的問題。

    如果對實現有興趣,可以看手寫依賴注入

    回覆
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-15 17:04:43

    是要注入的依賴,這種寫法利於以後的程式碼壓縮

    回覆
    0
  • 取消回覆