2016-02-19 71 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()这可能是在调试情况下非常有用添加模板,并得到一个。

相关问题