2014-01-03 4 views
0

Я использую angularjs, и для этого мне нужно назначить ng-model для моего радиополя.Присвоение атрибутов формам формы Symfony 2

Однако с помощью form_widget все атрибуты присваиваются контейнеру (div) вместо реальных полей ввода. Я дошел до того, что перекрыл блок radio_widget, но не совсем уверен, как передавать атрибуты в этот radio_widge t из виджета формы?

ответ

1

Спасибо mr1031011,

моя вина. Я дважды проверил его, и в заключение вам нужно перезаписать form_div_layout.html.twig. Здесь вы можете найти более подробную информацию о расширении формы здесь http://symfony.com/doc/current/cookbook/form/form_customization.html.

Я добавил attr в один из блоков - кажется, сейчас работает.

{% block choice_widget_expanded %} 
{% spaceless %} 
    <div {{ block('widget_container_attributes') }}> 
    {% for child in form %} 
     {{ form_widget(child, { 'attr': {'class': 'subclass', 'rel': 'test'} }) }} 
     {{ form_label(child) }} 
    {% endfor %} 
    </div> 
{% endspaceless %} 
{% endblock choice_widget_expanded %} 

Единственное различие между кодом из ядра и шахта , { 'attr': {'class': 'subclass', 'rel': 'test'} } добавляется. Конечно, вы можете обобщить эту часть, добавив некоторые параметры, такие как subattr или что-то в этом роде, но в этом примере вы можете найти идею.

Надеюсь, что это поможет

Отношения.

+0

большое спасибо, он отлично работает для меня – mr1031011

0

на официальном сайте вы можете найти

{{ form_widget(form.task, { 'attr': {'class': 'task_field'} }) }} 

после того, как все это может выглядеть следующим образом:

<div> 
    {{ form_label(form.name) }} 
    {{ form_errors(form.name) }} 
    {{ form_widget(form.name, { 'attr': {'class': 'task_field'} }) }} 
</div> 

Это самый простой способ обеспечить это. С другой стороны, вы можете создать собственный шаблон для радиополя и добавить необходимые атрибуты.

Отношения.

+0

attrs, назначенный radio_widget, кажется, установлен в контейнер вместо самих входов. – mr1031011

Смежные вопросы