ngmodelchange event change html forms angularjs

html - event - Angular.js enviar formulario de la manera anterior



ng-< change angular (3)

Estoy migrando una página html antigua de jQuery a Angular, y contiene algunos formularios de la vieja escuela con <input type="submit"> . Cuando enriquecí mis páginas con la directiva ng-app , los formularios antiguos dejaron de funcionar (me refiero a que cuando presionas los botones de submit , no pasa nada).

Busqué este problema y escaneé también los documentos de Angular, pero parece que ya nadie está enviando formularios.

Se agradecerá cualquier sugerencia sobre cómo hacer que esos formularios vuelvan a la vida sin demasiadas pulsaciones de teclas.

Actualmente el formulario tiene el siguiente marcado:

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

Todo el código de jQuery lo purgué y empecé de nuevo con Angular.

UPD:

Supongo que ahora encontré la causa, es un atributo de action vacío, parece que la acción vacía no es bienvenida por los estándares, pero es muy conveniente de usar, lo que permite enviar el formulario a la URL de la página actual, ¿hay una forma angular de hacerlo?


He hecho esto Estoy bastante seguro de que estaba usando jquery para enviar el formulario, pero probablemente podría hacerlo con un simple javascript antiguo.

Uno de los comentarios en la página de forma angular sugiere esto:

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

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


Saliendo de los documentos: http://docs.angularjs.org/api/ng.directive:form

La filosofía de Angular es minimizar los datos y las recargas de página, por lo que no les gustan las "formas de la vieja escuela", pero puede evitarlo mediante el uso de un atributo de action en el formulario.

Angular está diseñado pensando en aplicaciones de una sola página y evita recargas de página completa, ya que eso llevará más tiempo. Al usar la directiva ngSubmit , puede definir una función para enviarla al servidor y obtener una respuesta mucho más rápida que una recarga de página completa. Bytes en lugar de Kilobytes.


  • Use un atributo de action no vacío para que Angular envíe el formulario
  • Rellene el atributo de action con la ubicación actual (usando angular)

En tu controlador:

$scope.location = $window.location.href

En tu HTML:

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

Vea la demostración de Plunkr .