我知道我可以使用$injector.has('<constant name>')
通过名字来获得一个恒定的,但问题是我不知道名字的时间提前,我只想把所有的角常量的列表(例如)以“json_”开头。我需要这个的原因是因为我建立了一个模块,人们可以插入自己的代码,这就是为什么我不会提前知道名称,但我至少可以让程序员开始我需要的常量与“json_”一起工作。目前,我有告诉他们说出自己的常量正是“json1”,“json2”,“json3”等,并因为用户必须跟踪他们在哪里编号,它不是好的设计,这是不好的。似乎没有任何东西直接在API中做我想做的事情。提取所有常量出角缓存
0
A
回答
1
在角度模块中没有内置的方法来获取所有常量,但是您可以通过_invokeQueue
循环来实现此目的,这是一个内部使用数组来保存给定角度模块上的所有注册服务的方法。如果你注册了一个名为json_obj
在angular.module('app')
不变,然后在angular.module('app')._invokeQueue
中应包含数组:
['$provider', 'constant', ['json_obj', valueObj]]
所以,你可以得到的json_*
常量列表:
function getJsonConstants(){
var queue = angular.module('myApp')._invokeQueue;
var jsonConstant = [];
angular.forEach(queue, function(item){
if(item[1] === 'constant'){
if(item[2][0].match(/\bjson_/gi)){
jsonConstant.push({
key: item[2][0],
value: item[2][1]
})
}
}
})
return jsonConstant;
}
还有一件事,此函数只能返回所有在angular.module('myApp')
中注册的常量,如果myApp
有任何依赖模块,则应循环这些模块中的所有_invokeQueue以获得完整的常量列表。
相关问题
- 1. 缓存一个常量值
- 2. Windows Azure - 缓存 - 如何获取所有缓存项目
- 3. 列出单元中的所有常量
- 4. 在带有标签的Igraph中提取所有三角形
- 5. Sitecore获取所有角色
- 6. 如何在Apache Ignite 2.1中的一个缓存中列出所有缓存名称和所有列名称?
- 7. Django缓存不存储所有缓存的元素
- 8. Redis缓存驱动抛出PHPUnit异常
- 9. 用缓存提升批量Groovy eval()
- 10. 内存不足异常缓存位图时出现异常
- 11. 量角器element.click()抛出一个异常
- 12. html5离线缓存缓存所有文件,而不是缓存中列出的文件
- 13. 如何获取包中所有类通用的常量变量?
- 14. 获取包中声明的所有变量和常量名称
- 15. 是否缓存boost multi_index提取的键?
- 16. cURL始终提取缓存副本
- 17. Backbone.js的提取结果缓存
- 18. React-Native提取API积极缓存
- 19. CloudFlare不应该与“缓存一切”缓存所有内容吗?
- 20. 二级缓存 - 为什么不缓存所有实体?
- 21. 如何刷新EntLib缓存进程中的所有缓存
- 22. 提高代码缓存容量没有结束
- 23. 角2,打字稿模块没有导出的常量“FORM_DIRECTIVES”
- 24. 变量缓存软件APC,Memcached演出
- 25. 获取数据库的常量并将其存储在缓存中
- 26. 提取所有列标题
- 27. DeltaImport提取所有数据
- 28. 从git存储库中提取所有未获取的更改
- 29. 缝缓存提供
- 30. 如何在drupal中获取所有cids和缓存bin 7
你不应该依赖你在模块中不知道的常量。你所描述的听起来像一个糟糕的建筑。 –
感谢您的回复,这不是我的模块。我期待程序员在他们自己的角度应用程序中添加json_whatever常量。见[this](http://plnkr.co/3H1kgFKWsr341zsWLZvp)Plunker。 – Helzgate
这使得它非常容易让程序员JSON文件添加到他们的项目,它可以防止他们不必使用第三方插件的编程移动应用尤其是当JSON文件直接保存到存储。此外,我不希望程序员不得不直接在代码中嵌入json,这也很糟糕。我觉得,创建这些独立的小json1.js常量文件是最简单,直接的方法,除非有人有更好的主意。 – Helzgate