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:
Un elemento del pulsante con nessun attributo type specificato rappresenta la stessa cosa di un elemento button con il suo attributo type impostato su “submit” .
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:
Devi importare FormsModule da ‘@ angular / forms’ nel tuo app.module.ts
import { FormsModule } from '@angular/forms'; @NgModule({ imports: [ FormsModule ], })