本文實例講述了AngularJS壓縮JS的操作技巧。分享給大家供大家參考,具體如下:
大多數web項目在發布時候都會對js代碼進行壓縮,目的是為了減少js文件的大小,節省一點流量。
它的原理很簡單,就是對參數及部分變量名和函數進行重命名。
但是這種工作方式在AngularJS的應用中會有例外。
由于AngularJS的依賴注入是根據參數名進行注入的,顯然,對參數進行重命名會破壞這個機制。
如果不進行特殊處理,進行壓縮(minify)之后,在執行時將會出現這樣的錯誤
Unknow provider: aProvider<-a
對于這種錯誤的官方解釋是:找不到依賴的服務
也就是說這種依賴注入會出現錯誤。
好在AngularJS內置了一種標準機制來處理這個問題.
最簡單也最常見的方式就是用數組代替函數。如:
.controller('RegisterCtrl', ['$scope', '$interval', '$timeout', function ($scope, $interval, $timeout) { //do something}]);
數組的最后一個元素始終是一個函數,而前面幾個參數都是字符串,和這個函數中的參數一一對應。
另一種形式便是所謂的Annotation方式。如
var objCtrl = function($scope, $timeout, $interval){ // do something}//給objCtrl函數增加一個$inject屬性,它是一個數組,定義了需要被注入的對象objCtrl.$inject = ['$scope', '$interval', '$timeout'];
這里的依賴注入形式不僅限于Controller,一切需要DI(依賴注入的directive、factory、services等)都可以采用這兩種方式。
希望本文所述對大家AngularJS程序設計有所幫助。
新聞熱點
疑難解答