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

AngularJS壓縮JS技巧分析

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

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

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

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

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

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

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

Unknow provider: aProvider<-a

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

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

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

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

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

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

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

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

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

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

相關(guān)文章

最新評(píng)論

宿迁市| 古蔺县| 新邵县| 临沂市| 新昌县| 榕江县| 卓资县| 绥宁县| 政和县| 彭山县| 江安县| 中卫市| 乌苏市| 大安市| 博野县| 互助| 杭锦后旗| 安陆市| 万盛区| 平顶山市| 来凤县| 福安市| 巴马| 滦南县| 丹凤县| 洞口县| 班玛县| 潼南县| 沙田区| 越西县| 乳源| 岳池县| 育儿| 云浮市| 合肥市| 巍山| 黄浦区| 阿拉尔市| 璧山县| 博湖县| 吉安市|