2015-12-03 2 views
0

HI Я видел 2 способа введения зависимостей в angularjs контроллера method1:Нужна помощь при инъекции зависимостей для контроллера в angularjs

mainApp.controller('CalcController', function($scope, CalcService, defaultInput) {}); 

Method2:

mainApp.controller('CalcController', ['$scope', 'CalcService', 'defaultInput',function($scope, CalcService, defaultInput) {}]); 

Что такое разностное между method1 и метод2?

ответ

1

Второй способ делает ваши инъекции minification безопасным. Фактические имена параметров сокращаются, но, поставляя их в два раза, они все еще могут отображаться.

Итак, вы должны использовать второй метод.

0

Метод 1 не работает, когда вы минимизируете javascript, так как «CalcService» будет переименован в нечто вроде «_a», поэтому в версии 2 вы сохраняете имя, так как министры не касаются строк. Следовательно, имя службы не повреждено.

0

Метод второй позволяет сократить ваш код и продолжать функционировать правильно.

Javascript не имеет названных функциональных параметров, однако система зависимостей угловой системы extof расширяет это, чтобы разрешить именованные параметры (это только его система зависимостей, а не как целое). То, как он знает, что вводить.

Однако, минимизируя ваш код, он переименовывает функциональные параметры, изменяя систему впрыска углов.

Какое угловое значение будет использовать массив, чтобы найти фактическую зависимость по имени, а затем вставить его в переменную этой позиции в функции. Это означает, что порядок в массиве должен соответствовать порядку параметров функции, которые вы хотите использовать.

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