Поставщик angularjs $ get заполняется только один раз

0
angular.module("app",[]);

angular.module("app").provider("settings",function(){
    this.$get = function(){
        alert("get populated")
        return "hops";
    }
});

angular.module("app").directive("paragraph", function(settings){
    return {
      template: "<p>ok</p>",
      link:function(){
            console.log(settings)
      }
  }
})

И я применил свои директивы следующим образом:

<div ng-app="app">
    <paragraph></paragraph>
    <paragraph></paragraph>
    <paragraph></paragraph>
</div>

Но используется директива <paragraph> 3 раза, но предупреждение работает 1 раз.

Теги:

2 ответа

2
Лучший ответ

Да. Это верно. Поставщик и другие синтаксисы сахара, такие как сервисы, заводы по умолчанию являются одиночными.

  1. Метод провайдера $ get вызывается только при введении. Во время инъекции Он вызывает функцию $ get и возвращает объект/строку в соответствии с реализацией
  2. Каждая последующая инъекция функция $ get вообще не называется. но вместо этого возвращает тот же ссылочный объект/строку, возвращенную во время первого экземпляра

Вот как синглтон реализован в Angularjs.

1

Провайдеры взаимодействуют только на этапе конфигурации. Когда приложение уже запущено, ваши "настройки" не выполняют $ get, а скорее равны "хэп". См. Документы

Ещё вопросы

Сообщество Overcoder
Наверх
Меню