javascript - angularjs 提供者 $get 仅填充一次

标签 javascript angularjs

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 次。

最佳答案

是的。那是对的。 默认情况下,提供者和其他糖语法(如服务、工厂)都是单例。

  1. 仅在注入(inject)时才会调用提供程序 $get 方法。在注入(inject)期间它调用 $get 函数并返回对象/字符串 实现
  2. 每次后续注入(inject),$get 函数都不会被调用。但返回相同的引用对象/字符串 在第一次的时候

这就是 Angularjs 中单例的实现方式。

关于javascript - angularjs 提供者 $get 仅填充一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38697230/

相关文章:

javascript - 将项目添加到 json 对象数组中

javascript - 仅为屏幕阅读器隐藏文本

javascript - Angular fire - 如何在数据库中添加输入的日期和时间?

angularjs - 如何将我的数据从 Angular js 中的 ul 菜单内容传递到另一个页面

javascript - Angular 谷歌地图窗口不显示

javascript - 如何使用 Jquery 分割动态列表取决于多个元素?

javascript - 如何确保我的 javascript 函数仅在加载所有外部 javascript 后执行?

javascript - 从动态创建的按钮将参数传递给事件监听器

json - 获取没有时间/时区的 ui.bootstrap.datepicker 值

angularjs - 使用 Angular $location.path 时无法调用未定义的方法 'path'