angular.module('myApp',[]) .controller('DemoController',['$rootScope','$scope','$http',function($rootScope,$scope,$http){ }]) angular.module('myApp',[]) .controller('DemoController',function($rootScope,$scope,$http){ })
這兩種有什麼差別?
後面 function 傳入的參數無順序與數量要求.
function
第一種將傳入 function 的變數以字串 '$rootScope','$scope','$http' 的方式指明, 第二種只是簡單的變數名稱.
'$rootScope','$scope','$http'
因為js 壓縮工具會將function($rootScope,$scope,$http) 裡的$rootScope,$scope,$http 混淆壓縮掉, 例如換成了function(a,b,c) 混淆壓縮掉, 例如換成了
function($rootScope,$scope,$http)
$rootScope,$scope,$http
function(a,b,c)
. 程式碼混淆壓縮後 angular 不知道向
這是angular依賴注入的兩種方式:第一個是行內注入,第二個是推斷式註入(還有一種是顯示注入)區別是行內注入:允許我們在函數定義時從行內將參數傳入。此外,它可以避免在定義過程中使用臨時變數。 推斷式註入:如果沒有明確的聲明, Angular會假定參數名稱就是依賴的名稱,但這個過程只適用於未經過壓縮和混淆的程式碼,因為Angular需要原始未經壓縮的參數列表來進行解析。 (不過可以再打包過程中引入gulp-ng-annotate 將推斷式註入 會轉換成 行內注入)
建議你閱讀下angular依賴注入的方法
後面
function
傳入的參數無順序與數量要求.第一種將傳入
function
的變數以字串'$rootScope','$scope','$http'
的方式指明, 第二種只是簡單的變數名稱.因為js 壓縮工具會將
function(a,b,c)function($rootScope,$scope,$http)
裡的$rootScope,$scope,$http
混淆壓縮掉, 例如換成了function(a,b,c)
混淆壓縮掉, 例如換成了.
程式碼混淆壓縮後 angular 不知道向
function🎜 裡傳入的參數(或依賴)是啥, 導入壓縮後不能運行.🎜這是angular依賴注入的兩種方式:
第一個是行內注入,第二個是推斷式註入(還有一種是顯示注入)
區別是
行內注入:
允許我們在函數定義時從行內將參數傳入。此外,它可以避免在定義過程中使用臨時變數。
推斷式註入:
如果沒有明確的聲明, Angular會假定參數名稱就是依賴的名稱,但這個過程只適用於未經過壓縮和混淆的程式碼,因為Angular需要原始未經壓縮的參數列表來進行解析。 (不過可以再打包過程中引入gulp-ng-annotate 將推斷式註入 會轉換成 行內注入)
建議你閱讀下angular依賴注入的方法