2017-01-28 1 views
0

Ich habe folgende Post-Service mit beobachtbarenAngular 2 Typoskript beobachtbare Rückkehr erstes Objekt Ergebnis

// Add a new order 
addOrder(body: Object): Observable<Order[]> { 
    let bodyString = JSON.stringify(body); 
    let headers = new Headers({ 'Content-Type': 'application/json' }); 
    let options = new RequestOptions({ headers: headers }); 

    return this.authHttp.post(this.ordersUrl, bodyString, options) 
     .map(response => response.json()) 
     .catch((error: any) => Observable.throw(error.json().error || 'Server error')); 
} 

Der Server mit dem Objekt reagiert es gerade erstellt haben. Jetzt möchte ich dieses eine Objekt abrufen und es in der Variablen in der Komponente speichern.

private myOrder: Order; 

// Subscribe to observable 
orderOperation.subscribe(
    orders => { 
     // Emit list event 
     EmitterService.get(this.listId).emit(orders); 
     this.myOrder = ? 
    }); 

Da das Ergebnis vom Typ beobachtbar [] ist, kann ich dem Objekt var nicht zuweisen. Wie kann ich den Inhalt des Observablen in das Objekt var myOrder bringen?

+0

Wenn es gibt nur das ein Objekt (kein Array) können Sie den Rückgabetyp Ihrer Methode ändern, um '' beobachtbare statt Array –

Antwort

1

Wenn Sie sicher sind, dass der Dienst ein einzelnes Objekt zurückgibt, aktualisieren Sie einfach Ihre Art wie

addOrder(body: Object): Observable<Order> { 

und es sollte funktionieren.

Seitens abonnieren,

// Subscribe to observable 
orderOperation.subscribe(
    order => { 
     // Emit list event 
     ... 
     this.myOrder = order 
    }); 
0

diese Lösung versuchen.

orderOperation.subscribe(
orders => { 
    if(orders!=undefined){ 

     this.myorder=orders; 
    } 
}); 
Verwandte Themen