Ich verwende diesen Code:Angular 2 http Objekt zu Variable wie?
private ARRAYDATA: any[];
constructor(private http: Http) {
this.getCards('data.json');
}
getCards(url)
{
this.http.get(url)
.map(response => response.json())
.subscribe(
function(response) {
console.log(response); //show object
},
function(error) { console.log("Error happened" + error)},
function() { console.log("the subscription is completed")}
);
}
Dieser Code funktioniert, jetzt kann ich nicht verstehen, wie ein Objekt Antwort auf eine Variable ARRAYDATA
passieren; Hilf mir bitte! Dieser Code funktioniert nicht:
getCards(url)
{
this.http.get(url)
.map(response => response.json())
.subscribe(
function(response) {
console.log(response); //show object
this.arraydata = response;
},
function(error) { console.log("Error happened" + error)},
function() { console.log("the subscription is completed")}
);
console.log(this.arraydata)// show undefind
}
Ich brauche eine variable ARRAYDATA außerhalb der Funktion zu verwenden. genau hier
constructor(private http: Http) {
this.getCards('data.json');
console.log(this.ARRAYDATA);
}
müssen Sie es einzelne Datensatz zu einem Zeitpunkt oder Filter mit einem solchen Zustand kopieren, werden alle Daten – geminiousgoel
Mögliche Duplikat [Filter Wie kann ich die Antwort von einer beobachtbaren/http/Asynchron-Aufruf in angular2 zurückkehren ?] (http://stackoverflow.com/questions/43055706/how-do-i-return-the-response-from-an-observable-http-async-call-in-angular2) – Alex
Sie können nicht auf 'ARRAYDATA' zugreifen im Konstruktor so. Wie Sie aus dem Duplikat sehen können, sind Daten NUR innerhalb des Abonnements verfügbar. So ist es, du kannst nichts dagegen tun. Sie müssen die Daten innerhalb des Rückrufs manipulieren, sobald Sie es erhalten haben :) – Alex