Id 作为传递给 ngDialog.open() 的模板的文件路径

Id taken as file path for the template passed into ngDialog.open()

我正在使用 ngDialog.open() 打开一个对话框。我想将模板 ID 传递给这样的函数:

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

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

感觉ngDialog.open()函数的接口设计有点混乱:templateoptions参数的值可以是inline immediateHTML,也可以是[=]的文件路径25=] 服务器上的文件,或 <script> 元素的 ID。我该如何区分它们?

谢谢!

有 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() 获得一个模板,这可能很有用在调试你的情况。