Привет Я новичок в Угловые и JS Framework в целом. Мне было интересно, может ли кто-нибудь помочь мне расшифровать некоторые из обозначений.AngularJS Аннотации вопросы
Из документов: https://docs.angularjs.org/guide/di
Инлайн Массив Аннотация
someModule.controller('MyController', ['$scope', 'greeter', function($scope, greeter) {
// ...
}]);
$ впрыснуть собственности Аннотация
var MyController = function($scope, greeter) {
// ...
}
MyController.$inject = ['$scope', 'greeter'];
someModule.controller('MyController', MyController);
Для моего обучения предпочтительным является метод $ inject, поскольку он более взорван. Я вижу три шага: 1) определяет функцию, 2) устанавливает зависимости, 3) присоединяется к родительскому модулю.
ОК, так что мои вопросы: Почему «$ scope» и «greeter» перечислены в качестве параметров функции, а затем введены инъекцией $? Разве это не было бы так или иначе?
someModule.controller ('MyController', MyController);
Почему MyController дважды упоминается как литерал? Это тип и токен? Можно ли так же легко:
someModule.controller ('MyInstanceOfMyController', MyController);
Спасибо за любую освещенность
Спасибо. Я понял все ваши ответы :) В этом последнем пункте «1», что называется контроллером ». Правильно ли было бы сказать: «Это то, что я хочу назвать контроллером внутри« someModule »? – user1394502
« Это имеет смысл, вы говорите инжектору, что вводить, а декларация функции принимает их в качестве используемых параметров » Хотя я понимаю, что вы говорите, я еще не уверен, что это имеет смысл для меня. Передача чего-то в функцию в качестве параметра делает его доступным внутри этой функции .... так что wtf делает «инъекции»? Почему? «Это похоже на ссылку на библиотеку, почему она также должна быть параметром? – user1394502
Ваш первый комментарий - да, это имя, которое ссылается на него в' someModule'. – Starscream1984