2016-02-12 5 views
1

Я начинаю с нуля, я пытаюсь понять разницу между импортом чего-то в контроллере, например $ http, в [] и аналогичным параметром в функции.Другой тип импорта AngularJS

Другими словами, в чем разница между тем, что, как этот

.controller('customersCtrl', function($scope, $http) { 
    ... 
}); 

и это

.controller('customersCtrl',['$scope', '$http', function($scope, $http) { 
    ... 
}]); 

Я проверил документацию и много примеров об этом, но я не понимаю.

Спасибо заранее и извините за мой основной вопрос.

С уважением

+0

нет никакой разницы между ними с точки зрения функциональности, кроме как при минификации последний используется для правильной инъекции – Eftakhar

ответ

2

Оба делают то же самое. Но второй метод более безопасен для минимизации.

Если бы преуменьшать:

.controller('customersCtrl', function($scope, $http) { 
    ... 
}); 

Это нарушило бы потому, что $ масштаб и $ HTTP будет переименован в а и Ь.

Вы можете прочитать об этом здесь: https://scotch.io/tutorials/declaring-angularjs-modules-for-minification

Как указано в связанном статье вы можете также вводить его в контроллер с помощью:

mainController.$inject = ['$scope']; 
0

https://docs.angularjs.org/guide/di - чтение документации для инъекции зависимостей в углового должно быть достаточно. Более или менее это похоже на то, что сказал yeouuu.

Когда все будет уменьшено и угашено, вы получаете функцию (функция paramOne, paramTwo) -> (a, b). Во время выполнения вы не можете найти наш поиск, который вы действительно включили. Строки не уточняются. Таким образом, в основном во время выполнения вы имеете сопоставление между контроллером («AnyCtrl», ['$ scope', '$ http', function (a, b) {}]); Он знает, что a соответствует $ scope и b соответствует $ http. Именно по этой причине и порядок имеет значение.

Смежные вопросы