【发布时间】:2014-01-03 05:14:08
【问题描述】:
我正在使用 angularjs,为此我需要将 ng-model 分配给我的无线电场。
但是,使用 form_widget 时,所有属性都分配给了容器 (div),而不是真正的输入字段。我已经覆盖了 radio_widget 块,但不太确定如何将属性从表单小部件传递到这个 radio_widge t?
【问题讨论】:
标签: symfony
我正在使用 angularjs,为此我需要将 ng-model 分配给我的无线电场。
但是,使用 form_widget 时,所有属性都分配给了容器 (div),而不是真正的输入字段。我已经覆盖了 radio_widget 块,但不太确定如何将属性从表单小部件传递到这个 radio_widge t?
【问题讨论】:
标签: symfony
谢谢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 %}
core 和我的代码之间唯一的区别是添加了, { 'attr': {'class': 'subclass', 'rel': 'test'} }。当然你可以通过添加一些选项来概括这部分,比如subattr 或类似的东西,但在这个例子中你可以找到一个想法。
希望对你有帮助
问候。
【讨论】:
在官网可以找到
{{ 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>
这是提供此功能的最简单方法。另一方面,您可以为单选字段创建自己的模板并添加所需的属性。
问候。
【讨论】: