是否有可能提取一块树枝模板? 我需要管理一个表ajax刷新,我有一个twig模板,例如:
<html>
<body>
<table>
<thead>
<tr><th></th></tr>
</thead>
<tbody id="mypiece">
<tr><th></th></tr>
<tr><th></th></tr>
</tbody>
</table>
</body>
</html>
在第一次加载时我需要整个模板,通过ajax我只需要#mypiece内容,是否可以使用DOM id或其他标记从twig中提取它?
我找到的唯一解决方案是将其分成两个不同的模板并使用包含操作。
whole.html
<html>
<body>
<table>
<thead>
<tr><th></th></tr>
</thead>
<tbody id="mypiece">
{% include 'content.html' %}
</tbody>
</table>
</body>
</html>
content.html
<tr><th></th></tr>
<tr><th></th></tr>
但我认为这确实是一个糟糕的解决方案......
答案 0 :(得分:2)
好吧,我个人更喜欢实际划分它们,但是如果你打算用AJAX
获得一些东西 - 尝试使用嵌入式控制器(在这种情况下,专门针对你的XHR
请求),例如:
<tbody id="mypiece">
{{ render(controller(
'SomeBundle:SomeController:someAction',
{ 'someParameter': "something" }
)) }}
</tbody>
这比解析一些渲染模板以获得它的一部分要好得多,因为对我而言,它似乎就像设计流程一样。
更好的解决方案是在ajax调用上返回指定的json
数据,并在客户端的一个javascript模板引擎中呈现它。
希望这会有所帮助,欢呼。