我知道我可以使用$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. Azure角色緩存非常緩慢
- 2. 輸出緩存不緩存所有頁面
- 3. 緩存一個常量值
- 4. doctrine2:明確提取沒有緩存
- 5. 獲取使用MemoryCache類c緩存的所有緩存對象#
- 6. 獲取所有緩存鍵中的Zend數據緩存
- 7. Windows Azure - 緩存 - 如何獲取所有緩存項目
- 8. 量角器:無法使用量角器獲取所有元素
- 9. 列出單元中的所有常量
- 10. 緩存所有查詢
- 11. Rails緩存所有查詢
- 12. 提取字符串 - 所有出現
- 13. 核心數據提取非常緩慢
- 14. 量角器測試非常緩慢,並且經常超時
- 15. 在帶有標籤的Igraph中提取所有三角形
- 16. Sitecore獲取所有角色
- 17. 如何讀取Appfabric緩存中存在的所有項目:
- 18. 在CUDA中剖析常量緩存
- 19. 如何在Apache Ignite 2.1中的一個緩存中列出所有緩存名稱和所有列名稱?
- 20. 如何獲取Infinispan緩存集羣中的所有緩存名稱
- 21. Django緩存不存儲所有緩存的元素
- 22. Redis緩存驅動拋出PHPUnit異常
- 23. 用緩存提升批量Groovy eval()
- 24. 量角器element.click()拋出一個異常
- 25. 內存不足異常緩存位圖時出現異常
- 26. html5離線緩存緩存所有文件,而不是緩存中列出的文件
- 27. Groovy的常春藤緩存(@Grab)沒有緩存?
- 28. cURL始終提取緩存副本
- 29. React-Native提取API積極緩存
- 30. Backbone.js的提取結果緩存
你不應該依賴你在模塊中不知道的常量。你所描述的聽起來像一個糟糕的建築。 –
感謝您的回覆,這不是我的模塊。我期待程序員在他們自己的角度應用程序中添加json_whatever常量。見[this](http://plnkr.co/3H1kgFKWsr341zsWLZvp)Plunker。 – Helzgate
這使得它非常容易讓程序員JSON文件添加到他們的項目,它可以防止他們不必使用第三方插件的編程移動應用尤其是當JSON文件直接保存到存儲。此外,我不希望程序員不得不直接在代碼中嵌入json,這也很糟糕。我覺得,創建這些獨立的小json1.js常量文件是最簡單,直接的方法,除非有人有更好的主意。 – Helzgate