Я читаю http://www.alexrothenberg.com/2013/02/11/the-magic-behind-angularjs-dependency-injection.html, и оказалось, что инъекция зависимостей angularjs имеет проблемы, если вы минимизируете свой javascript, поэтому я мне интересно, если вместо
var MyController = function($scope, $http) {
$http.get('https://api.github.com/repos/angular/angular.js/commits')
.then(function(response) {
$scope.commits = response.data
})
}
вы должны использовать
var MyController = ['$scope', '$http', function($scope, $http) {
$http.get('https://api.github.com/repos/angular/angular.js/commits')
.then(function(response) {
$scope.commits = response.data
})
}]
в общем, я думал, что второй фрагмент предназначен для старой версии angularjs, но ....
Всегда ли использовать инъекционный способ (второй)?
Безопаснее использовать второй вариант, но также можно безопасно использовать первый вариант с ngmin .
ОБНОВЛЕНИЕ:
теперь ng-annotate становится новым инструментом по умолчанию для решения этой проблемы.
источник
Да, вам нужно использовать явное внедрение зависимостей (второй вариант). Но начиная с Angular 1.3.1 вы можете отключить неявную инъекцию зависимостей, это действительно полезно для решения потенциальных проблем с переименованием сразу (до минификации).
Отключение неявного DI с помощью
strictDi
свойства config:Отключение неявного DI с помощью
ng-strict-di
директивы:источник
Просто укажите, что если вы используете
Йомен
нет необходимости делать подобное
потому что ворчание во время minify учитывает, как управлять DI.
источник
Как сказал OZ_, используйте ngmin для минимизации всех файлов angular js, например, directive.js service.js. После этого вы можете использовать компилятор Closure для его оптимизации.
ссылка:
Как минимизировать скрипты angularjs
Строить с YO
источник
Возможно, вы захотите использовать,
$inject
как упоминалось здесь :источник
Используйте строгое внедрение зависимостей для диагностики проблем
При использовании неявной аннотации код при минификации сломается.
Из Документов:
Вы можете добавить
ng-strict-di
директиву к тому же элементу,ng-app
чтобы выбрать строгий режим DI.Строгий режим выдает ошибку всякий раз, когда служба пытается использовать неявные аннотации.
Это может быть полезно для определения проблем.
Для получения дополнительной информации см.
источник