2016-08-18 8 views
1

Client:wie Post mit FormParams senden Angular2 mit

ich in angular2 wie diesem Beitrag tun:

doSelectMessagesAttributesUrl2(pushRequest : PushRequest) { 
    console.info("sending post request"); 

    let headers = new Headers({ 
     'Content-Type': 'application/json'}); 

    return this.http 
     .post(this.selectMessagesAttributesUrl, JSON.stringify(pushRequest), {headers: headers}) 
     .map(res => res.json().data) 
     .subscribe(
      data => { }, 
      err => { } 
     ); 
} 

Wie soll ich die Anfrage ändern Sie den Server mit FormParam anrufen?

Server:

@Path("/FeatureGetQueueData") 
    @POST 
    @Consumes(MediaType.APPLICATION_FORM_URLENCODED) 
    @Produces(MediaType.APPLICATION_JSON) 
    public String runFeatureGetQueueData(@FormParam("queue") MyString paramQueue) throws Exception { 

     if (!SupporToolAlert.validateEnvironment(SupporToolConfig.ROW)) { 
      return SupporToolAlert.invalidEnvironment(); 
     } 

     String queue = PushQueueConfig.conf().QUEUE.get(paramQueue.value); 

Antwort

0

Haben Sie kombinieren Ihre Form mit jedem Modell ??

In Dokumentation können Sie schönes Beispiel suchen: right here

Aber wenn u nicht Klasse für das Formular erstellen möchten, u kann etwas tun:

jedes Element Objekt von Formular hinzufügen, und senden Sie dieses Objekt über http.

etwas wie folgt aus:

form.html

<form> 
<div class="form-group"> 
      <label for="status"> Status: </label> 
      <input id='status' type="text" class="form-control" [ngModel]="formModel.operatorStatus" (ngModelChange)="changeFormModel('status', $event)" > 
      </div> 
</form> 

jetzt in Sie Komponente, müssen Sie leeres Objekt init zum enthält Daten vom Modell und implementieren changeFormModel:

component.ts

private formModel: any = {}; 
private changeFormModel(model, event) { 
    this.formModel[model] = event; 
} 

jetzt in Ihrem HTTP-Anfrage Sie können senden, formModel, denken Sie daran, es zu string;)

Das ist nicht eine perfekte Lösung, aber funktioniert wie Charme für mich, aber in naher Zukunft werde ich eine Lösung aus der Dokumentation implementieren.

Ich hoffe es hat dir geholfen;)

+0

'this.formModel [modell] = event' was bedeutet das? –

+0

Eigenschaft auf Objekt setzen, Ereignis enthält Wert aus Formular $ event – Daredzik