将 ajax/jquery JSON 数组加载到 Twig Template 中


Load ajax/jquery JSON array into Twig Template

我目前正在使用Symfony2框架构建一个程序,并利用该平台附带的许多不错的新功能,如Doctrine,Twig等。

我的一个页面要求我在页面加载完成后通过 AJAX 加载大量数据。这很容易通过 JQuery/Ajax 实现,但我想这样的东西可以通过 JSON 将 ajax 直接注入 Twig 模板中,并将其填充在 for 循环中。

<table>
<tr><td>header</td></tr>
{% for row in rows %}
    <tr><td>{{row.data}}</td></tr>
{%endfor%}
</table>

像这个粗糙的例子。

确实为此快速浏览了文档,但搜索已关闭,我无法直接找到任何内容。如果它是我正在寻找的,那么指向文档的链接就足够了。

我认为最干净的方法是在控制器中生成您的 Json。周围的东西:

/**
 * @route("/json", name="json_generator")
*/
public function jsonAction() {
   // do your for loop and build up a $jsonArray
   return new Response( json_encode($jsonArray) );
}

然后在浏览器中测试它的响应,并在树枝模板中使用 Javascript 加载它。现在没有具体的代码,但从我的头顶:

$(document).ready(function() {
  $.ajax({
     ajax: true,
     url: "{{ path('/json') }}"
  });
};

只是为了让你明白这个想法。希望它能为您提供一个基本示例-

有两种方法:1. 在控制器渲染 html 中发出 AJAX 请求并将其返回到脚本。然后在需要时添加。2. 发出 AJAX 请求,返回 JSON 并在脚本中构建 html,然后将准备好的 html 添加到您的特定位置。

我认为更好的方法是在您的操作中渲染 html 并将其返回到您的 AJAX 脚本