Подтвердить что ты не робот

Angular.js submit form старый способ

Я переношу старую html-страницу из jQuery в Angular, и она содержит некоторые формы старой школы с <input type="submit">. Когда я обогатил свои страницы директивой ng-app, старые формы перестали работать (я имею в виду, когда вы нажимаете кнопки submit, ничего не происходит).

Я искал эту проблему и просматривал документы Angular, но, похоже, никто больше не отправляет формы.

Любые предложения о том, как привести эти формы к жизни снова без особых нажатий клавиш, будут оценены.

В настоящее время форма имеет следующую разметку:

<form name="form_upload" method="post" action="" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" name="send" value="Upload">
</form>

Весь код jQuery, который я очистил и начинаю с Angular.

UPD:

Я думаю, теперь я нашел причину, это пустой атрибут action, кажется, что пустое действие не приветствуется стандартами, но очень удобно использовать, позволяя вам отправить форму на текущий URL страницы, есть ли Angular способ сделать это?

4b9b3361

Ответ 1

Отключение документов: http://docs.angularjs.org/api/ng.directive:form

Angular философия состоит в том, чтобы свести к минимуму данные и перезагрузки страниц, поэтому им не нравятся "старые школьные формы", но вы можете обойти ее, используя атрибут action в форме.

Angular разработан с использованием одностраничных приложений и не позволяет полностью перезагрузить страницу, так как это займет больше времени. Используя директиву ngSubmit, вы можете определить функцию для отправки данных формы на сервер и получить ответ назад намного быстрее, чем полная перезагрузка страницы. Байты вместо Килобита.

Ответ 2

  • Используйте непустой атрибут action, чтобы сделать Angular отправьте форму
  • Заполнить атрибут action текущим местоположением (используя angular)

В вашем контроллере:

$scope.location = $window.location.href

В вашем HTML:

<form action="{{location}}">

Смотрите демонстрацию plunkr.

Ответ 3

Я сделал это. Я уверен, что я использовал jquery для отправки формы, но вы могли бы сделать это с помощью простого старого javascript.

Один из комментариев на странице формы angular предлагает следующее:

<input onclick="javascript:$(this).parent().submit();" type="submit" value="">

http://docs.angularjs.org/api/ng.directive:form