【发布时间】:2013-07-15 13:41:08
【问题描述】:
我获得了需要配置的 Angular 服务,这样我可以从我的应用程序中移除耦合并共享我的一些代码。
我的问题是你如何做到这一点?
使用 module.value() 和依赖注入?那么如何获得默认值呢?你如何在初始化时计算出一个值而不是硬编码?
使用其他服务?你怎么把它变成通用的?
你有代码示例吗,因为我对此有点迷茫。
【问题讨论】:
-
在初始化时计算而不是硬编码是什么意思?您可以更新使用 module.value 创建的值,而不是 module.constant,您也可以使用 ng-init,您可能会异步获取一些数据,然后设置注入的 module.value()
-
假设我想获取配置值,用它进行异步调用,取回一个值,然后将其注入我的服务中。
-
是的,所以如果我理解正确,您读取了一些先前使用 module.value(key,value) 调用设置的配置值,通过调用 $injector.get(key) 来获取值,如果你不确定注入器是否已经配置了那个键,你可以用 try catch 块包围,并且可以在任何一种情况下给它一些默认值,你可以再次使用 module.value() 我相信添加或更改任何值注入。也许您担心在更新服务之前已经为服务等注入了值,我相信 $injector.get() 会为您检索最新的值。
-
啊,好吧,我在这里再读了几次您的问题,所以您正在寻找更像是在 Java 中获得的属性文件,您可以在其中配置服务之外的事物列表但是是用来配置的吗?如果是这样,您可以只使用一个单独的 JS 文件来设置所有 module.value 调用,并且您可以使用 GruntJS 之类的东西来设置一个构建配置,该配置根据您的构建目标加载适当的 JS 文件(或者甚至可以重新写一些文件,虽然我不确定有哪些 grunt 任务可用)
-
我投票结束我自己的问题,因为我在这里找到了答案:stackoverflow.com/questions/23600051/…
标签: angularjs angularjs-service