2016-08-08 12 views
0

Ich habe diese POST-Daten in meinem Winkel 2 Anwendung:POST (http Service) Winkel 2

postServices(property) { 
    let body = JSON.stringify(property); 
    let headers = new Headers({'Content-Type': 'application/json'}); 
    let options = new RequestOptions({ headers:headers }); 
    return this._http.post(this._url, body, options) 
     .map(res => res.json()); 
} 

Und in meiner Vorlage habe ich auf diese Schaltfläche:

<button *ngIf="!!service_rec.servicecontrolled" 
[style.background-color]="service_rec.controlled == 'true' ? 'green' :'orange'" 
     class="btn btn-warning"> 
     {{ service_rec.servicecontrolled | json | toOnOff }} 
</button> 

Und wie i Veranstaltung hinzufügen auf (click)="" in meiner Vorlage mit diesem http-Service?

Antwort

2

Sie können einen Klick-Handler auf der Schaltfläche hinzufügen, über den Sie postService aufrufen können.

<button *ngIf="!!service_rec.servicecontrolled" (click)= "callingPostService()" 
[style.background-color]="service_rec.controlled == 'true' ? 'green' :'orange'" 
     class="btn btn-warning"> 
     {{ service_rec.servicecontrolled | json | toOnOff }} 
</button> 

in Ihrer Komponente, wie etwas, das tun würde,

callingPostService() { 
    this._myService.postService('prop'); 
} 
0

Es ist ziemlich unklar, welches Problem Sie versuchen zu lösen, aber ich denke,

(click)="myService.postService('someProp')" 

ist das, was Sie suchen.

0

Sie können das Click-Ereignis auf dem Knopf mit einem Anruf behandeln, die die Service-Methode ausführt:

<button (click)= "executePostService()">(...)</button> 

Die executePostService Methode wird den Dienst wie unten beschrieben aufrufen. Sie müssen nicht auf der Observablen (observables sind faul) abonnieren, sonst wird die HTTP-Anfrage nicht ausgeführt:

constructor(private service:SomeHttpService) { 
} 

callingPostService() { 
    this.service.postService('prop').subscribe(); 
}