Angular tutorial hat die folgende Zeile in dem HTTP-Abschnitt funktioniert: Typoskript Gießen json zum Objekt in Winkeln mit `as` nicht
response => response.json().data as Hero
als Held zu bekommen. response.json().data
gibt folgendes zurück:
Ich habe versucht, das Gleiche zu tun. Ich benutzte Django auf der Serverseite und gebe json unter Verwendung rest_framework zurück. In Angular ich habe meine Klasse:
export class MyClass {
name: string;
}
response.json()
vom Server zurück sieht die folgende Art und Weise:
so versuche ich zu tun, was:
myObject: MyClass;
ngOnInit(): void {
this.getResponseFromServer().then(myObject => this.myObject = myObject);
}
getResponseFromServer(): Promise<MyClass> {
return this.http.get("http://127.0.0.1:8000/myurl/")
.toPromise()
.then(response => response.json() as MyClass)
.catch(this.handleError);
}
und meine Vorlage enthält:
<ion-card>
<ion-card-header> Card Header </ion-card-header>
<ion-card-content>
Response from server {{myObject.name}}
</ion-card-content>
</ion-card>
und ich bekomme Fehler: Kann Eigenschaft 'Name' von undefined nicht lesen.
Wenn ich in html {{myObject.name}}
-{{myObject}}
ändern, dann gibt es keine Fehler und Antwort vom Server und ich habe Antwort vom Server [object Object] gedruckt.
Die Frage ist also, was ist der Unterschied zwischen meinem Code und eckigen Tutorial? Ich habe viele beantwortete Fragen wie How do I initialize a typescript object with a JSON object gesehen, aber ich möchte es viel einfacher mit nur as
Schlüsselwort.
Bitte, Tag-Beschreibungen lesen und AngularJS Tag für Angular 2+ Fragen nicht verwenden. – estus