Можно ли извлечь кусок шаблона ветки?
Мне нужно управлять обновлением таблицы ajax, у меня есть шаблон ветки, например:
<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 или с помощью других маркеров?
Единственное решение, которое я нашел, — это разделить его на два разных шаблона и использовать включение.
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>
Но я думаю, что это действительно плохое решение …
Ну, я лично предпочитаю разделить их, но если вы собираетесь что-то получить с AJAX
а также — попробуйте использовать встроенные контроллеры (в данном случае специально для XHR
запрос), например:
<tbody id="mypiece">
{{ render(controller(
'SomeBundle:SomeController:someAction',
{ 'someParameter': "something" }
)) }}
</tbody>
Это намного лучше, чем анализировать какой-то отрендеренный шаблон, чтобы получить его часть, потому что для меня это похоже на процесс проектирования.
Еще лучшее решение — вернуть указанное json
данные о вызове ajax и их рендеринг в одном из шаблонизаторов javascript на стороне клиента.
Надеюсь, это поможет, ура.
Других решений пока нет …