Symfony 2 Форма темы и JS

У меня есть класс AFormType и соответствующий шаблон ветки, который обрабатывается в some_controller_action.html.twig таким образом:

{% form_theme a_form with ['ABundle:Form:a-form.html.twig'] %}
{{ form(a_form) }}

Я хочу, чтобы a-form.html.twig содержал javascript, который относится только к форме и ни к чему другому. Поэтому я добавил туда следующее:

{% block javascripts %}
<script type="text/javascript">
$(document).ready(function () {
...
}
{% endblock %}

У some_controller_action.html.twig также есть блок javascripts, который содержит document.load.

Проблема: шаблонизатор игнорирует скрипт a_form.html.twig и не включает отображаемую страницу. Контроллер html.twig JS обрабатывается правильно.

Как я могу решить проблему?

0

Решение

Проблема, которую вы видите, заключается в том, что расширение формы ветки Symfony обрабатывает загрузку и рендеринг блоков в файлах темы. Вы не можете добавить ничего, кроме виджетов формы в ваши темы.

Вы можете попробовать импортировать файл темы и установить текущий файл в качестве темы. Но вам все равно придется звонить block('javascripts')

{% form_theme a_form _self %}
{% use 'ABundle:Form:a-form.html.twig' %}

Единственный другой способ добавить JavaScript для контроллера формы — это добавить его непосредственно в HTML-код в виджете. Gregwar CaptchaBundle Является ли это. Проблема этого подхода заключается в том, что скрипт будет добавляться каждый раз при визуализации контроллера формы.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]