我知道我可以使用$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