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 раз.
Да. Это верно. Поставщик и другие синтаксисы сахара, такие как сервисы, заводы по умолчанию являются одиночными.
Вот как синглтон реализован в Angularjs.
Провайдеры взаимодействуют только на этапе конфигурации. Когда приложение уже запущено, ваши "настройки" не выполняют $ get, а скорее равны "хэп". См. Документы
provider
,service
,factory
,constant
,value
имеют одноэлементный характер, ознакомьтесь с документацией здесь.