搜尋

首頁  >  問答  >  主體

angular.js - angularJS controller 第二個參數是什麼意思?

 var app = angular.module('app',['ngPlugin']);
    app.controller('frontTourism',['$scope','$http','stModal','$timeout','ngSubmit','alert',function(){/*省略*/}])

'$scope','$http','stModal','$timeout','ngSubmit','alert' 這些有什麼用?

滿天的星座滿天的星座2744 天前569

全部回覆(3)我來回復

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-15 17:06:50

    依賴注入的意思,我就說詳細點吧。

    一個物件通常有三種方式可以獲得對其依賴的控制權:
    (1) 在內部建立依賴;
    (2) 透過全域變數進行引用;
    (3) 在需要的地方透過參數傳遞。
    Angular的依賴注入是透過第三種方式實現的。其餘兩種方式會帶來各種問題,例如污染全域作用域,使隔離變得異常困難等。
    從功能來看,依賴注入會事先自動尋找依賴關係,並將注入目標告知被依賴的資源,這樣就可以在目標需要時立即將資源注入進去。

    Angular有3種注入方式:
    a、推斷式註入
    app.controller('MyCtrl', function($scope) {
    });

    b、標註式註入
    var myFunc=function($scope) {
    });
    myFunc.$inject = ['$scope'];
    app.controller('MyCtrl',myFunc);

    c、內聯注入
    app.controller('MyCtrl', ['$scope', function($scope) {
    }]);

    第1種是根據寫的參數名稱,如$scope,內部自己調用$inject把$scope進行依賴注入,如果在前端開發中使用壓縮工具,就會把$scope變成另外的字母了,就無法進行推斷了,而另外兩種方式你可以把function($scope)改成function(a)都沒關係;
    第2種要多寫一行程式碼;
    一般建議使用第3種。

    回覆
    0
  • 巴扎黑

    巴扎黑2017-05-15 17:06:50

    這些是用來注入的對象,只有註入這些對象,在下面的function中才能使用
    $scope 頁面傳值需要
    $http http請求需要

    。 。 。

    回覆
    0
  • 为情所困

    为情所困2017-05-15 17:06:50

    模組注入,引入你需要用到的其他模組。
    例如$http就是一個模組

    回覆
    0
  • 取消回覆