如何用hinclude.js嵌入异步内容

编辑本页

如何用hinclude.js嵌入异步内容

在模板中嵌入控制器是跨多个模板重用内容的方法之一。要进一步提高性能,可以使用hinclude.jsJavaScript库来异步嵌入控制器。

首先,包括hinclude.js页面中的库链接到它或者将其添加到应用程序JavaScript中使用Webpack Encore

由于嵌入的内容来自另一个页面(或控制器),Symfony使用标准的一个版本ob娱乐下载呈现()配置功能hinclude模板中的标签:

1 2
{{render_hinclude(controller('…'))}}{{render_hinclude(url('…'))}}

请注意

当使用控制器()功能时,还必须配置片段路径选项

当JavaScript被禁用或需要很长时间加载时,你可以显示一个默认内容,呈现一些模板:

  • YAML
  • XML
  • PHP
1 2 3 4 5
#配置/包/ framework.yaml框架:#……片段:hinclude_default_template:hinclude.html.twig

您可以定义默认模板呈现()函数(该函数将覆盖已定义的任何全局默认模板):

1 2 3
{{render_hinclude(controller('…'),{default: 'default/content.html. {{render_hinclude(controller('…')),树枝'})}}

或者你也可以指定一个字符串作为默认内容显示:

1
{{render_hinclude(控制器 ('...'), { 默认值:“加载…”})}}

使用属性选项定义hinclude.js选项的值:

1 2 3 4 5 6 7
{#默认情况下,跨站请求不使用cookie、授权头或TLS客户端证书等凭证;将此选项设置为“true”来使用它们#}{{render_hinclude(controller('…'),{attributes: {'data-with-credentials': 'true'}})}}{#默认情况下,加载内容中包含的JavaScript代码不会运行;将此选项设置为true以运行JavaScript代码#}{{render_hinclude(controller('…'),{attributes: {evaljs: 'true'}})}}
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。
ob娱乐下载Symfony 6.0支持通过SensioLabs