Twig模板提取子集

时间:2015-01-09 13:21:19

标签: php twig template-engine

是否有可能提取一块树枝模板? 我需要管理一个表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>

但我认为这确实是一个糟糕的解决方案......

1 个答案:

答案 0 :(得分:2)

好吧,我个人更喜欢实际划分它们,但是如果你打算用AJAX获得一些东西 - 尝试使用嵌入式控制器(在这种情况下,专门针对你的XHR请求),例如:

<tbody id="mypiece">
    {{ render(controller(
        'SomeBundle:SomeController:someAction',
        { 'someParameter': "something" }
    )) }}
</tbody>

这比解析一些渲染模板以获得它的一部分要好得多,因为对我而言,它似乎就像设计流程一样。

更好的解决方案是在ajax调用上返回指定的json数据,并在客户端的一个javascript模板引擎中呈现它。

希望这会有所帮助,欢呼。