最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

AngularJS壓縮JS技巧分析

 更新時間:2016年11月08日 09:37:50   作者:前端超人  
這篇文章主要介紹了AngularJS壓縮JS的操作技巧,分析了AngularJS進(jìn)行壓縮(minify)之后出現(xiàn)的問題與相應(yīng)的解決方法,需要的朋友可以參考下

本文實(shí)例講述了AngularJS壓縮JS的操作技巧。分享給大家供大家參考,具體如下:

大多數(shù)web項(xiàng)目在發(fā)布時候都會對js代碼進(jìn)行壓縮,目的是為了減少js文件的大小,節(jié)省一點(diǎn)流量。

它的原理很簡單,就是對參數(shù)及部分變量名和函數(shù)進(jìn)行重命名。

但是這種工作方式在AngularJS的應(yīng)用中會有例外。

由于AngularJS的依賴注入是根據(jù)參數(shù)名進(jìn)行注入的,顯然,對參數(shù)進(jìn)行重命名會破壞這個機(jī)制。

如果不進(jìn)行特殊處理,進(jìn)行壓縮(minify)之后,在執(zhí)行時將會出現(xiàn)這樣的錯誤

Unknow provider: aProvider<-a

對于這種錯誤的官方解釋是:找不到依賴的服務(wù)

也就是說這種依賴注入會出現(xiàn)錯誤。

好在AngularJS內(nèi)置了一種標(biāo)準(zhǔn)機(jī)制來處理這個問題.

最簡單也最常見的方式就是用數(shù)組代替函數(shù)。如:

.controller('RegisterCtrl', ['$scope', '$interval', '$timeout', function ($scope, $interval, $timeout) {
  //do something
}]);

數(shù)組的最后一個元素始終是一個函數(shù),而前面幾個參數(shù)都是字符串,和這個函數(shù)中的參數(shù)一一對應(yīng)。

另一種形式便是所謂的Annotation方式。

var objCtrl = function($scope, $timeout, $interval){
  // do something
}
//給objCtrl函數(shù)增加一個$inject屬性,它是一個數(shù)組,定義了需要被注入的對象
objCtrl.$inject = ['$scope', '$interval', '$timeout'];

這里的依賴注入形式不僅限于Controller,一切需要DI(依賴注入的directive、factory、services等)都可以采用這兩種方式。

希望本文所述對大家AngularJS程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評論

金秀| 林甸县| 铅山县| 体育| 霸州市| 郎溪县| 新竹市| 积石山| 都匀市| 获嘉县| 许昌县| 邮箱| 涞源县| 九龙县| 平利县| 桓仁| 勐海县| 长岭县| 甘谷县| 洮南市| 新绛县| 财经| 敖汉旗| 湟源县| 大悟县| 开远市| 宝应县| 湘潭市| 玉溪市| 淳安县| 胶州市| 渝北区| 丰城市| 策勒县| 孝义市| 朝阳市| 冕宁县| 宿迁市| 昌宁县| 奉化市| 北流市|