在JQuery .html()调用中包含一个Twig模板并删除新行
Including a Twig template in a JQuery .html() call and remove new lines
我想创建一个对话框,它将是另一个Twig文件的内容。在JQuery调用中,我有:
$('<div></div>')
.html('{% include "folder/file.html.twig" %}')
.dialog({....
在file.html.twig中有新行,所以当放入.html调用时,它会失败,因为.html调用不允许新行。如果有一种方法可以使用来自Twig的替换来摆脱所有新行,那么当我使用:
时,可能会起作用。$('<div></div>')
.html('{% include "folder/file.html.twig"|replace({"'n":""}) %}')
.dialog({....
它替换路径外的任何新行(不存在的),而不是呈现的内容。
您可以使用filter
标记来应用过滤器,而不是使用管道。
$('<div></div>')
.html('{% filter replace({"'n":""})%}{% include "folder/file.html.twig" %}{% endfilter}')
.dialog({....
然而,代替替换,使用json_encode
过滤器将HTML转换为字符串,而不仅仅是将其放在引号之间。这也可以防止在包含引号的HTML中出现问题。
$('<div></div>')
.html({% filter json_encode %}{% include "folder/file.html.twig" %}{% endfilter %})
.dialog({....
尝试使用反划符
$('<div></div>')
.html(`{% include "folder/file.html.twig" %}`)
.dialog({....
模板文字嗯,这当然是在JavaScript中混合小枝html输出的问题的例子,这很容易变得非常混乱,非常快-从经验来看。
尽管如此,你可以通过将包含的模板暴露为渲染控制器来解决这个问题,这样你就可以更容易地在纯PHP中准备响应->getContent(),即{{渲染(控制器("AppBundle:文件夹:文件"))}}
....
Class Folder{
....
public function fileAction(){
....
$included_template_content = $this->renderView("folder/file.html.twig");
// Process Content for javascript using php functions
return new Response($included_template_content);
}
....
}
....
或者,如果你想避免额外的子请求,你可以探索在Twig扩展
您可以使用ajax来完成此操作,如:
public function yourAction(Request $request)
{
$template = $request->isXmlHttpRequest() ? 'template_xhr.html.twig' : 'template.html.twig';
return $this->render($template);
}
和ajax:
$.ajax({ url : 'url', success : function(data) {
$("#texte").html(data)
})
使用无空格标签。它去掉了所有的空格,所以你的代码和内容不会受到影响,但它会全部显示在一行中:
$('<div></div>')
.html('{% spaceless %}{% include "folder/file.html.twig" %}{% endspaceless %}')
.dialog({....
相关文章:
- 如何从rails中的代码中删除新行( )
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 如何在脚本上添加新行
- 在不刷新整个网格的情况下,向Asp.net网格视图添加新行
- 字符串中的
标记未正确在 HTML 中创建新行 - JavaScript-如果以前不存在文本,如何从文本区域删除新行
- 反应中的新行
- 阻止ReSharper将JavaScript函数参数放到新行中
- HTML表内容:如果行很长,如何在新行中显示部分内容
- dhtmlx添加新行并启动单元格编辑器
- 将新行打印到$mdToast
- 在新行(html)中动态添加更多文本字段
- 使用删除文本创建新行
- 如何在Google Geochart图表的工具提示文本中添加新行
- NodeJS Fork-每次子流程发送新行时都进行React
- 为什么要将此p标记添加为新行
- 如何转义php中的新行字符以输出为javascript字符串值
- 在Aptana Studio 3中将Javascript数组自动格式化为新行
- Jquery在表WITH函数中追加新行后添加单击事件
- 在JQuery .html()调用中包含一个Twig模板并删除新行