AngularJS壓縮JS技巧分析
本文實(shí)例講述了AngularJS壓縮JS的操作技巧。分享給大家供大家參考,具體如下:
大多數(shù)web項(xiàng)目在發(fā)布時(shí)候都會(huì)對js代碼進(jìn)行壓縮,目的是為了減少js文件的大小,節(jié)省一點(diǎn)流量。
它的原理很簡單,就是對參數(shù)及部分變量名和函數(shù)進(jìn)行重命名。
但是這種工作方式在AngularJS的應(yīng)用中會(huì)有例外。
由于AngularJS的依賴注入是根據(jù)參數(shù)名進(jìn)行注入的,顯然,對參數(shù)進(jìn)行重命名會(huì)破壞這個(gè)機(jī)制。
如果不進(jìn)行特殊處理,進(jìn)行壓縮(minify)之后,在執(zhí)行時(shí)將會(huì)出現(xiàn)這樣的錯(cuò)誤
Unknow provider: aProvider<-a
對于這種錯(cuò)誤的官方解釋是:找不到依賴的服務(wù)
也就是說這種依賴注入會(huì)出現(xiàn)錯(cuò)誤。
好在AngularJS內(nèi)置了一種標(biāo)準(zhǔn)機(jī)制來處理這個(gè)問題.
最簡單也最常見的方式就是用數(shù)組代替函數(shù)。如:
.controller('RegisterCtrl', ['$scope', '$interval', '$timeout', function ($scope, $interval, $timeout) {
//do something
}]);
數(shù)組的最后一個(gè)元素始終是一個(gè)函數(shù),而前面幾個(gè)參數(shù)都是字符串,和這個(gè)函數(shù)中的參數(shù)一一對應(yīng)。
另一種形式便是所謂的Annotation方式。如
var objCtrl = function($scope, $timeout, $interval){
// do something
}
//給objCtrl函數(shù)增加一個(gè)$inject屬性,它是一個(gè)數(shù)組,定義了需要被注入的對象
objCtrl.$inject = ['$scope', '$interval', '$timeout'];
這里的依賴注入形式不僅限于Controller,一切需要DI(依賴注入的directive、factory、services等)都可以采用這兩種方式。
希望本文所述對大家AngularJS程序設(shè)計(jì)有所幫助。
相關(guān)文章
Angular4學(xué)習(xí)之Angular CLI的安裝與使用教程
網(wǎng)上很多教程過時(shí),命令在angular4中不適用等等,所以下面這篇文章主要給大家介紹了關(guān)于Angular4學(xué)習(xí)之Angular CLI的安裝與使用教程的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-01-01
AngularJs導(dǎo)出數(shù)據(jù)到Excel的示例代碼
本篇文章主要介紹了AngularJs導(dǎo)出Excel的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08
AngularJS驗(yàn)證信息框架的封裝插件用法【w5cValidator擴(kuò)展插件】
這篇文章主要介紹了AngularJS驗(yàn)證信息框架的封裝插件用法,分析了AngularJS表單驗(yàn)證規(guī)則并實(shí)例說明了w5cValidator擴(kuò)展插件的相關(guān)使用技巧,需要的朋友可以參考下2016-11-11
Material(包括Material Icon)在Angular2中的使用詳解
這篇文章主要介紹了Material(包括Material Icon)在Angular2中的使用,需要的朋友可以參考下2018-02-02
Angular 2父子組件數(shù)據(jù)傳遞之@Input和@Output詳解(下)
這篇文章主要給大家介紹了關(guān)于Angular 2父子組件數(shù)據(jù)傳遞之@Input和@Output的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-07-07
AngularJS模糊查詢功能實(shí)現(xiàn)代碼(過濾內(nèi)容下拉菜單排序過濾敏感字符驗(yàn)證判斷后添加表格信息)
最近做項(xiàng)目遇到這樣的需求,要求添加球員的功能,具體樣式?jīng)]做具體要求,下面小編給大家?guī)砹薃ngularJS模糊查詢功能實(shí)現(xiàn)代碼(過濾內(nèi)容下拉菜單排序過濾敏感字符驗(yàn)證判斷后添加表格信息),感興趣的朋友一起看看吧2017-10-10

