在AngularJS中,您可以將外部模板作爲腳本標記或Web服務器上的html文件提供。但是我需要實現一個檢索這些模板的自定義邏輯,而且這些方法都不適合。所以我想我可以重寫AngularJS的一部分,其中模板實際上是從服務器加載的。但事實證明,很難找到關於此的任何信息。我發現$TemplateRequestProvider
用於這項任務,但我不知道如何用自定義邏輯代替它。你能幫我嗎?實現加載AngularJS模板的自定義方式
0
A
回答
1
我不完全確定你想要實現什麼,因爲實際上$ templateRequestProvider 確實爲提供了檢索指向它們的給定URL的模板。在引擎蓋下,當需要位於遠程源的模板時,提供者首先運行其內部緩存,並且如果請求的模板不可用,則獲取它。如果響應成功,則響應主體(HTML內容)將存儲並索引到內部存儲/緩存中。現在,在資源服務器需要額外的數據集出現在請求中的情況下,例如標頭/ cookie,強制請求參數,授權令牌等等,那麼確實,您檢索這些模板的請求需要更復雜。話雖如此,我想你真正感興趣的是能夠在發送之前處理請求,而不是重寫(提取+緩存)邏輯,這已由angular開發者創作。
儘管如此,如果有實際需要,並且有自己定製的機制來處理請求,您可以在角度應用程序的生命週期的配置階段訪問該提供程序。要做到這一點,使用鏈接的配置你的應用程序的模塊上這樣說:
app.config(['$templateRequestProvider', function ($templateRequestProvider) {
$templateRequestProvider.$get = ['$templateCache', '$http', '$q','$sce', ƒunction ($templateCache, $http, $q, $sce) {
var getRemoteTemplateByUrlFn = function (tplUrl, ignoreRequestError) {
// here be dragons
return $http.get ... ;
};
return getRemoteTemplateByUrlFn;
}];
}]). ...
現在,要實現這個階段之前,我建議你有一個更好的文檔爲$ templateRequestProvider從露出學習開$將配置對象提供給提供者的函數,它還公開了httpOptions(...)函數,您可以調用它傳遞一個httpOptions對象,其中包含一系列頭文件等,以包含在請求獲取遠程模板的請求中。另外,說到模板緩存和按需提取,讓我向您介紹ocLazyLoad庫(如果您還沒有遇到它)。我正在利用它來在需要時延遲加載頁面源僅(例如,點擊按鈕時模態窗口模板和控制器)。在它的強大功能:
- 依賴自動加載
- 調試友好(無EVAL代碼)
- 按需
- 負載通過服務或指令混合正常開機和負載能力
- 使用內嵌式異步加載或使用您自己(requireJS,...)
- 加載JS(角與否)/ CSS /模板文件
玩得開心!
相關問題
- 1. 自定義JsonStore和模板實現ExtJs
- 2. Grails 3 - 通過版本2中_form.gsp的方式實現模板的自定義
- 3. AngularJS的自定義域模板
- 4. 添加自定義模板?
- 5. AngularJS - 在自定義指令中呈現模板之前格式化ng模型
- 6. Angularjs UI.Bootstrap分頁自定義模板?
- 7. AngularJS無法加載模板
- 8. 無法加載模板AngularJS
- 9. 如何加載自定義PHP Magento的模塊模板文件
- 10. 自定義SignalR背板實現獨特的有效負載
- 11. AngularJS自定義指令不會加載
- 12. angularJS:無法加載自定義服務?
- 13. 如何實現自定義ui/css庫的角形模板?
- 14. 如何實現自定義模板引擎的spring支持?
- 15. CKEDITOR的源代碼模式加擾自定義模板代碼
- 16. 模板未加載在magento自定義模塊中
- 17. 自定義Magento模板中的加售
- 18. 自定義模板
- 19. 實現模板化模板方法
- 20. CrudRepository自定義方法的實現?
- 21. 以實用的方式定義常見外觀的模板
- 22. 在WordPress中獲取自定義文章類型以加載自定義模板
- 23. 自定義指令模板顯示來自WS AngularJS的數據
- 24. 文本模板自定義主機:如何實現ResolveDirectiveProcessor
- 25. 如何在jqgrid中實現自定義模板選項
- 26. Angular 2 - Ng2-Bootstrap:自定義複雜模板typeahead實現
- 27. 如何在opencart中實現自定義模板
- 28. 在WordPress上實現自定義模板(靜態網頁-HTML)
- 29. WordPress的自定義文章模板將不會加載
- 30. 自定義模板頁面標題不加載wordpress中的style.css