javascript - AngularJS 改变注入(inject)的全局变量值

标签 javascript angularjs

我有一个常量 app.constant('DOCUMENT_ID', window.documentId || 1);,我将其注入(inject)到服务、 Controller 和指令中。

我想将 DOCUMENT_ID 更改为全局变量,这样如果我在 Controller 中更改 DOCUMENT_ID 的值,我想在所有服务中获取更改后的值以及注入(inject)了 DOCUMENT_ID 的 Controller 。

如何以这种方式使用全局变量?

最佳答案

这里不需要全局变量(而且这是一种不好的做法)。只需利用对象通过引用传递的事实。例如,您可以使用这样定义的服务:

app.value('DOCUMENT', {
    ID: window.documentId || 1
});

现在,无论何时您在任何地方更改 DOCUMENT.ID,应用程序的每个部分都将具有更新版本的 ID。就像对象属性一样阅读它。

演示:http://plnkr.co/edit/Oay8IaLRnuCN2xkSuM69?p=preview

关于javascript - AngularJS 改变注入(inject)的全局变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23536469/

相关文章:

javascript - 使用动态配置选项动态加载 highcharts

javascript - JS正则表达式匹配两种可能的组合

javascript - 如何使两个或多个 html 元素在可编辑区域中表现为一个单元

javascript - 为什么 var name = function(){...} 形式的函数在 ES5 中没有被提升?

angularjs - 我怎样才能使默认 Accordion 打开第一个元素?

javascript - AngularJS:使用自定义服务转换 $resource 中的响应

javascript - 我的 Angular 表单输入[数字]验证不起作用

javascript - 如何防止自动点击赞成票/反对票按钮的垃圾邮件?

javascript - 在SVG中顺时针销毁路径

javascript - 如何从 CSS 获取颜色值