我目前正在使用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 脚本