AngularJS壓縮JS技巧分析
本文實例講述了AngularJS壓縮JS的操作技巧。分享給大家供大家參考,具體如下:
大多數(shù)web項目在發(fā)布時候都會對js代碼進行壓縮,目的是為了減少js文件的大小,節(jié)省一點流量。
它的原理很簡單,就是對參數(shù)及部分變量名和函數(shù)進行重命名。
但是這種工作方式在AngularJS的應用中會有例外。
由于AngularJS的依賴注入是根據(jù)參數(shù)名進行注入的,顯然,對參數(shù)進行重命名會破壞這個機制。
如果不進行特殊處理,進行壓縮(minify)之后,在執(zhí)行時將會出現(xiàn)這樣的錯誤
Unknow provider: aProvider<-a
對于這種錯誤的官方解釋是:找不到依賴的服務
也就是說這種依賴注入會出現(xiàn)錯誤。
好在AngularJS內(nèi)置了一種標準機制來處理這個問題.
最簡單也最常見的方式就是用數(shù)組代替函數(shù)。如:
.controller('RegisterCtrl', ['$scope', '$interval', '$timeout', function ($scope, $interval, $timeout) { //do something }]);
數(shù)組的最后一個元素始終是一個函數(shù),而前面幾個參數(shù)都是字符串,和這個函數(shù)中的參數(shù)一一對應。
另一種形式便是所謂的Annotation方式。如
var objCtrl = function($scope, $timeout, $interval){ // do something } //給objCtrl函數(shù)增加一個$inject屬性,它是一個數(shù)組,定義了需要被注入的對象 objCtrl.$inject = ['$scope', '$interval', '$timeout'];
這里的依賴注入形式不僅限于Controller,一切需要DI(依賴注入的directive、factory、services等)都可以采用這兩種方式。
希望本文所述對大家AngularJS程序設計有所幫助。
相關文章
angular6.0開發(fā)教程之如何安裝angular6.0框架
這篇文章主要介紹了angular6.0開發(fā)教程之如何安裝angular6.0框架,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06Angularjs實現(xiàn)數(shù)組隨機排序的方法
今天小編就為大家分享一篇Angularjs實現(xiàn)數(shù)組隨機排序的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10在angularJs中進行數(shù)據(jù)遍歷的2種方法
今天小編就為大家分享一篇在angularJs中進行數(shù)據(jù)遍歷的2種方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10Angular中Lazy Loading懶加載陷阱避坑最佳實踐
這篇文章主要為大家介紹了Angular中Lazy Loading懶加載陷阱避坑最佳實踐,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-10-10AngularJs導出數(shù)據(jù)到Excel的示例代碼
本篇文章主要介紹了AngularJs導出Excel的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08