myMod.config(function($provide) {
$provide.provider('greeting', function() {
this.$get = function() {
return function(name) {
alert("Hello, " + name);
};
};
});
});
Это код angularjs для предоставления мне настраиваемой службы с именем приветствия для использования. Я буду вводить эту службу в свой контроллер в моем коде. Код работает отлично для меня. Что меня путает, это количество раз, когда функция слова вызывается в этом конкретном разделе кода. Пожалуйста, можете ли кто-нибудь сказать, что каждая из функций ссылается. Например, функция в строке this.$get = function()
ссылается на метод $ get метода поставщика. Что делает функция в строке $provide.provider('greeting', function()
относится к "И я также не знаю, что другие функции ссылаются?" Также как побочная заметка я узнал о типе функции "анонимный", функции. Каковы они и почему они называются анонимными? Не является ли определение функции определенным именем полезным?
Пожалуйста, ознакомьтесь с приведенным ниже кодом, который может быть более наглядным. Это эквивалентно вашему коду.
Объяснение:
.config
вызывается в модуле myMod
. Его аргумент - это function
используемая для настройки модуля. В этом случае к модулю добавляется новый provider
.provider
в вашем module
. Для этого для этой функции регистрации требуется имя для этого нового поставщика, а также provider object
. Объект может иметь $get method
(метод - это еще одна функция). В вашем случае это достигается путем вызова this.$get
.$get method
вызывается, когда создается новый экземпляр вашего провайдера. Метод $get method
возвращает фактическую функцию, которая будет использоваться. В вашем случае это greeting
функции. myMod.config( registerProvider($provider) );
/////
function registerProvider($provider){
var
providerName = 'greeting',
provider = providerObject;
$provider(providerName, providerObject);
}
var providerObject = {
$get: function() {return greeting}
};
function greeting(name){
alert('Hello');
}