因為 AngularJS Dependency Injection 的關係,因此在 Controller 傳入參數時,如果要使用特定的物件必須將名稱設定成固定的關鍵字(ex: $scope, $http)
但是如果要將 javascript minification 的話,帶入的參數名稱勢必會被取代,因此可以透過 AngularJS 中的 $inject 解決這個問題
一般 Controller
var MyCtrl = function (a, b) { a.name = 'Johnson'; console.log(a.name); console.log(b); } // 傳入順序會與 $inject 設定的順序相同 MyCtrl.$inject = ['$scope', '$http'];
Module 中的 Controller
var ballApp = angular.module('BallApp', []); ballApp.controller('NameCtrl', ['$scope', '$http', function(a, b) { a.name = 'Johnson'; console.log(a.name); console.log(b); console.log(123); }]);