假设我的布局中有一个块:
{% block sidebar %} {% render url( 'sidebar' ) %} {% endblock %}
是否可以使用ajax刷新块而不在其周围设置div?在我的例子中,我不能创建一个div,因为它崩溃了我的整个模板所以我需要知道甚至可能吗?
例如,我可以刷新这样的div(.test是表的类):
$('.test').load(" .test");
我可以制作这样的东西来刷新块吗?
$('sidebar').load(" sidebar");
有什么想法吗?
答案 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并未完全支持它)