2016-03-03 47 views
1

當我像下面這樣定義角度時,會導致使用縮小此javascript的問題,這是錯誤:$ injector:modulerr 模塊錯誤。

angular.module('myModule').controller('MyController', function ($scope) { 

}); 

現在,如果我寫下我的角度如下,縮小後就可以了。

angular.module('myModule').controller('MyController', ["$scope", function ($scope) { 

}]); 

在縮小過程中,第一種方法將$ scope轉換爲其他變量名稱,看起來像這樣的問題。有沒有辦法避免不把代碼編寫爲第二種情況?

回答

2

您可以使用$inject

function MyController($scope) { 
} 

MyController.$inject = ['$scope']; 
angular.module('myModule').controller('MyController', MyController); 
1

如果你有某種構建過程(或者您想引入一個非常小的構建過程),請參閱ng-annotate項目(https://github.com/olov/ng-annotate)。它是一個處理你的JavaScript代碼的工具,可以幫助你避免重複自己。它的功能基本上是讀取代碼的第一個版本,併爲您生成一個$ inject屬性,如Pedro Nascimento的答案中所示。

對於grunt,gulp,webpack等有幾個插件,但如果你還沒有構建過程,使用這個模塊也很容易。

相關問題