Come inviare il modulo al server in Angular2?

Ora la submission è stata catturata da angular2 anche con action = in

.

collegamento demo: http://plnkr.co/edit/4wpTwN0iCPeublhNumT5?p=preview

//our root app component import {Component} from 'angular2/core' @Component({ selector: 'my-app', providers: [], template: ` 

Hello {{name}}

`, directives: [] }) export class App { constructor() { this.name = 'Angular2' } }

Dovresti sfruttare la direttiva NgSubmit , come descritto di seguito:

 
(...) (...)

In questo caso, quando fai clic sul pulsante di invio, verrà chiamato il metodo onSubmit del componente e sarai in grado di inviare manualmente i dati al server utilizzando la class HTTP su Angular2:

 @Component({ }) export class MyComponent { constructor(private http:Http) { this.data = { name: 'some name' (...) }; } onSubmit() { this.http.post('http://someurl', JSON.stringify(this.data)) .subscribe(...); } } 

In questo modo puoi rimanere nella stessa pagina.

modificare

Seguendo il tuo commento, devi disabilitare il comportamento della direttiva NgForm che cattura l’evento di submit e impedisce che venga propagato. Vedi questa linea: https://github.com/angular/angular/blob/master/modules/%40angular/forms/src/directives/ng_form.ts#L141 .

Per farlo basta aggiungere l’attributo ngNoForm al modulo:

 

In questo caso, verrà aperta una nuova finestra per l’invio del modulo.

Spero che ti aiuti, Thierry

Ehi, se qualcun altro ha mai qualche fastidioso problema in Firefox quando si invia un modulo a un nuovo url si verifica un aggiornamento della pagina e non segue fino alla pagina aggiungere target="_parent" e risolverà il problema.