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 次。
最佳答案
是的。那是对的。 默认情况下,提供者和其他糖语法(如服务、工厂)都是单例。
- 仅在注入(inject)时才会调用提供程序 $get 方法。在注入(inject)期间它调用 $get 函数并返回对象/字符串 实现
- 每次后续注入(inject),$get 函数都不会被调用。但返回相同的引用对象/字符串 在第一次的时候
这就是 Angularjs 中单例的实现方式。
关于javascript - angularjs 提供者 $get 仅填充一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38697230/