Ich versuche, die Werte aus einer beobachtbaren, mein Abonnement (Komponente) Code zu extrahieren, ist wie folgt:beobachtbare undefiniert
this.checkoutService.getDisabledDate().subscribe
(dates=>{this.formattedDate=dates},
(error:any)=>{console.log(error)});
In der Callback ‚Termine‘ ein console.log von this.formattedDate druckt die korrekte Werte. Der Zugriff auf this.formattedDate außerhalb des Abonnements ist jedoch nicht definiert.
den Servicecode:
getDisabledDate():Observable<any>{
let headers = new Headers({'Content-Type': 'application/json' });
let options = new RequestOptions({headers:headers});
let userRequest={action_id:0};
let disabledDate={};
return this.http
.post(this.deliveryUrl,userRequest,options)
.map((r:Response)=>r.json())
.catch(this.handleError);
}
Ich habe die gleiche Aktion Übergeben von Daten über einen queryParam mit Kurzform() durchgeführt, und es machte keinen Unterschied in diesem Fall. Ich scheine zu übersehen, was notwendig ist, um die Information mit diesem herauszuziehen.
Ich habe an beiden sah: Angular2 HTTP using observables subscribe showing data undefined und Angular 2 return data from service is not availabe after RxJs subscribe.
Welche ich bin bestanden, wo ihre Fragen beantwortet wurden. Was vermisse ich?
Wie versuchen Sie, auf diese Daten zuzugreifen? Ihrer Meinung nach? Haben Sie * ngIf wie in einer Antwort vorgeschlagen verwendet, wenn das der Fall ist? – Alex
Es klingt, als ob Sie versuchen, auf die Daten zuzugreifen, bevor sie verfügbar sind. Es ist erst verfügbar, nachdem das Observable einen Wert dafür zurückgegeben hat. Sind Sie sicher, dass das Observable zurückkehrt, d. H. "{This.formatdate = dates" wird aufgerufen, bevor Sie versuchen, darauf zuzugreifen? Das ist meine beste Schätzung für Ihr Problem. – VSO
Dies ist technisch ein Trick, wie man einen Wert von einer asynchronen Funktion zurückgibt. –