0

ngDialog.open()用来打开一个对话框。我想将模板 id 传递给函数,如下所示:

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

但是,从网络历史记录中,我发现它正在尝试将其templateid作为文件获取到服务器上。

我觉得这个ngDialog.open()函数的界面设计有点混乱:templateoptions参数的值可以是内联的立即HTML,也可以是服务器上HTML文件的文件路径,或者是<script>元素的id。我应该如何区分它们?

谢谢!

4

1 回答 1

2

有 2 个选项,而不是 3 个:模板的文件名或作为字符串的模板。要将模板作为您plain: true在选项中设置的字符串提供给open(),否则它将被解释为文件名。

第三个选项——通过 id 选择模板——实际上是使用 Angular 的$templateCache. 如果您提供的名称由于某种原因不在$templateCache其中,则将从服务器请求它。

添加模板的一种方法$templateCache是使用这样的script标签(来自 Angular 文档的示例):

<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()对调试您的情况很有用。

于 2016-02-22T06:05:27.380 回答