AngularJs壓縮時需要注意的事項

來源:互聯網
上載者:User
由於AngularJS是通過控制器建構函式的參數名字來推斷依賴服務名稱的。所以如果你要壓縮控制器的JS代碼,它所有的參數也同時會被壓縮,這時候依賴注入系統就不能正確的識別出服務了。

假如我們的Controller的名稱為:BookCtrl,壓縮前的代碼為:
var BookCtrl = function($scope, $http) { /* constructor body */ };

為了克服壓縮引起的問題,只要在控制器函數裡面給$inject屬性賦值一個依賴服務識別符的數組:
BookCtrl.$inject = ['$scope', '$http'];

另一種方法也可以用來指定依賴列表並且避免壓縮問題——使用Javascript數組方式構造控制器:把要注入的服務放到一個字串數組(代表依賴的名字)裡,數組最後一個元素是控制器的方法函數:

var BookCtrl = ['$scope', '$http', function($scope, $http) { /* constructor body */ }];


上面提到的兩種方法都能和AngularJS可注入的任何函數完美協作,要選哪一種方式完全取決於你們項目的編程風格, 建議使用數組方式。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.