Evitare Angular2 per inviare sistematicamente il modulo al clic del pulsante

Ok, forse questo non è chiaro. Ottieni questo modulo:

Perché tutti i pulsanti triggersno la funzione submit() ? E come evitarlo?

Vedo due opzioni per risolverlo:

1) Specificare type = “button” esplicitamente (penso che sia più preferibile ):

  

Secondo la specifica W3:

2) Usa $event.preventDefault() :

  

o

  preview(e){ e.preventDefault(); console.log('preview') } 

Questo Plunker suggerisce diversamente, ogni pulsante sembra funzionare come previsto.

Tuttavia, per impedire il comportamento predefinito del modulo puoi farlo,


TS:

 submit(e){ e.preventDefault(); } 

Modello:

 

Ho scoperto che con la versione 2.0 (ngSubmit) si passa un valore evento null al metodo, quindi invece dovresti noi (submit)

 

il tuo file .ts

 submit($event){ /* form code */ $event.preventDefault(); } 

Imposta type = “button” nel pulsante che non vuoi eseguire submit.

Ho lo stesso problema. Il lavoro che ho trovato è stato il button sostituzione con a stile di pulsante per applicare all’elemento di ancoraggio:

 
Preview Reset

Devi importare FormsModule da ‘@ angular / forms’ nel tuo app.module.ts

 import { FormsModule } from '@angular/forms'; @NgModule({ imports: [ FormsModule ], })