1
Ich habe eine Angular2-Komponente, und ich muss ein Attribut einer Schnittstelle mit einigen Daten von einem Webservice zurückgegeben werden. Ich habe diesen Code:Angular2: warte, dass Service Antwort Antwort vor Show-Komponente
ngOnInit() {
this.services.callMyService().subscribe(
response => this.response = response,
error => alert(error),
() => this.initInterface()
)
}
initInterface() {
this.myInterface= {
field1: '',
field2: 'someData',
fieldFromService: this.response.field
};
}
aber es scheint, dass Komponente zeigte vor Dienst seine Arbeit hat zu tun. Wenn ich beispielsweise auf field1 zugreife, erhalte ich einen Fehler:
was ist los?
Verschieben 'this.initInterface();' nach der Zeile 'this.response = response' in Erfolg Rückruf. –
Versuchen Sie auch, Ihr Objekt zu initialisieren ('this.myInterface = {field1: '', field2: '', fieldFromService: ''};') außerhalb von initInterface() –
müssen Sie * ngIf = "myInterface" in Ihrem verwenden HTML-Code, um zu überprüfen, ob Daten angekommen sind oder nicht. Sie werden keinen undefinierten Fehler sehen, wenn Sie * ngIf verwenden. Versuch es –