AngularJS和Symfony2表单或如何删除表单" action"属性?

时间:2015-02-13 12:21:24

标签: javascript php angularjs forms symfony

我有Symfony表单(FormType)并希望在客户端使用AngularJS和ng-submit,但Symfony会在表单中添加action属性,而ng-submit不会阻止表单提交和页面重新加载。

2种可能的解决方案:

  1. 如何删除Symfony表单中的action属性?
  2. 如何在Angular控制器中调用preventDefault()(或类似的东西)?

1 个答案:

答案 0 :(得分:2)

好的,我找到了解决方案。我只是在我的基本表单主题中扩展form_start块:

{%- block form_start -%}
    {% set method = method|upper %}
    {%- if method in ["GET", "POST"] -%}
    {% set form_method = method %}
{%- else -%}
    {% set form_method = "POST" %}
{%- endif -%}
    <form name="{{ name }}" method="{{ form_method|lower }}" {% if action|length %}action="{{ action }}"{% endif %}{% for attrname, attrvalue in attr %} {{ attrname }}="{{ attrvalue }}"{% endfor %}{% if multipart %} enctype="multipart/form-data"{% endif %}>
    {%- if form_method != method -%}
    <input type="hidden" name="_method" value="{{ method }}" />
{%- endif -%}
{%- endblock form_start -%}

新添加的if

是什么新功能
{% if action|length %}action="{{ action }}"{% endif %}