Symfony2可以用ajax刷新树枝块吗?

时间:2015-05-08 12:50:28

标签: javascript jquery ajax symfony

假设我的布局中有一个块:

{% block sidebar %} {% render url( 'sidebar' ) %} {% endblock %}

是否可以使用ajax刷新块而不在其周围设置div?在我的例子中,我不能创建一个div,因为它崩溃了我的整个模板所以我需要知道甚至可能吗?

例如,我可以刷新这样的div(.test是表的类):

$('.test').load(" .test");

我可以制作这样的东西来刷新块吗?

$('sidebar').load(" sidebar");

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

没有。这是不可能的。

这背后的原因是网页层的分离,即jQuery在客户端运行,在服务器上运行TWIG。

答案 1 :(得分:1)

Symfony在服务器端工作,因此一旦页面呈现,它就无法知道DOM中发生了什么。此外,jquery无法了解twig块,因为它们是经过解析的服务器端。

我能给你一个"愚蠢的" (可能我甚至反对良好做法,取决于你正在呈现的内容)回答,但也许它可能有所帮助:你试过放一个" span"围绕它而不是div?

{% block sidebar %} <span class="test">{% render url( 'sidebar' ) %}</span> {% endblock %}

编辑: 我认为应该给出一个解释:
这个答案是正确的,假设你的侧边栏里面没有div,否则它只是一个&#34;便宜的技巧&#34;并且可能会导致其他问题(如果不是现在,可能在将来)。例如,请参阅div inside the span element 如果添加div螺丝,你可能需要检查你的布局 另一个我建议你尝试,如果它可以在你的情况下工作是使用内联块div。

{% block sidebar %} <div class="test">{% render url( 'sidebar' ) %}</div>{% endblock %}

然后,在你的CSS中:

.test {
  display: inline-block;
}

请参阅http://learnlayout.com/inline-block.html(并记住IE6和7并未完全支持它)