2016-02-19 64 views
0

我使用ngDialog.open()來打開對話框。我想在模板ID傳遞給這樣的功能:Id作爲傳遞到ngDialog.open()的模板的文件路徑

ngDialog.open({template: 'templateid'}); 

然而,從網絡歷史,我發現這是試圖將templateid作爲獲取服務器上的文件。

我覺得ngDialog.open()功能的界面設計有點混亂:template選項參數的值可以是在線即時HTML,或HTML文件服務器上的文件路徑,或<script>元素的ID。我應該如何區分它們?

謝謝!

回答

1

有2個選項,不是3:模板的文件名或模板的字符串。要將模板作爲字符串提供,請在open()的選項中設置plain: true,否則將被解釋爲文件名。

第三個選項 - 通過id選擇模板 - 實際上使用的是Angular的$templateCache中的文件名。如果出於某種原因您提供的名稱不在$templateCache中,則將從服務器請求。一個模板添加到$templateCache

的一種方法是使用script標籤像這樣的(例如,從角文檔):

<script type="text/ng-template" id="templateId.html"> 
    <p>This is the content of the template</p> 
</script> 

這裏主要需要注意的是,這一定是你有元素中的某處ng-app

$templateCache文檔還指出,你可以在代碼中通過注入$templateCache,並呼籲$templateCache.put()通過調用$templateCache.get()這可能是在調試情況下非常有用添加模板,並得到一個。

相關問題