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()
函数的接口设计有点混乱:template
options参数的值可以是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()
获得一个模板,这可能很有用在调试你的情况。
我正在使用 ngDialog.open()
打开一个对话框。我想将模板 ID 传递给这样的函数:
ngDialog.open({template: 'templateid'});
但是,从网络历史记录中,我发现它正在尝试将 templateid
作为服务器上的文件获取。
感觉ngDialog.open()
函数的接口设计有点混乱:template
options参数的值可以是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()
获得一个模板,这可能很有用在调试你的情况。