@pyHammer

В чем разница написания myApp.controller('ctrl', ['$scope', function ($scope) {}]) и myApp.controller('ctrl', function ($scope) {})?

Вся суть в названии)
Не совсем понимаю почему везде используют первый вариант если второй короче!?
  • Вопрос задан
  • 115 просмотров
Решения вопроса 1
@bromzh
Drugs-driven development
Потому что ангуляр внедряет зависимости по именам аргументов. А некоторые минификаторы и компиляторы изменяют имена аргументов. В итоге всё ломается. Первый вариант используется, чтобы явно задать список имён зависимостей для внедрения.

А вообще, по-нормальному используют либо такой вариант:
angular.module('app').controller('FooController', FooController);

FooController.$inject = ['$service1', '$service2'];
function FooController($service1, $service2) {}


Либо берут это, настраивают свой сборщик (плагинов там куча) и вставляют определённый коммент где нужно:
angular.module('app').controller('FooController', FooController);

/*@ngInject*/
function FooController($service1, $service2) {}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
miraage
@miraage
Старый прогер
А вы напишите <html ng-app="app" ng-strict-di> и всё поймете.

Читаем секцию Implicit Annotation.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы