Ich habe den Plunker meines angular2 Codeteils angebracht. Ich möchte ein Feld aus meinem JSON drucken, aber nicht drucken, da mein Objekt anfänglich null ist und es über ein Versprechen gefüllt wird.angular2: Fehler: TypeError: Kann die Eigenschaft '...' von undefined nicht lesen
Dies ist meine Komponentendatei
import {Component, NgModule, OnInit} from '@angular/core'
import {BrowserModule} from '@angular/platform-browser'
class MyData {
xyz : MySubData;
}
class MySubData {
name : string;
}
@Component({
selector: 'my-app',
template: `
<div>
<h2>Hello {{name}}</h2>
{{abc.xyz.name}}
</div>
`,
})
export class App implements OnInit {
abc : MyData = null;
constructor() {
this.name = 'Angular2'
}
ngOnInit() {
setTimeout(() => {
this.abc = new MyData();
this.abc.xyz = new MySubData();
this.abc.xyz.name = "Binita";
}, 2000);
}
}
@NgModule({
imports: [ BrowserModule ],
declarations: [ App ],
bootstrap: [ App ]
})
export class AppModule {}
Wenn ich die Linie bin Entfernen {{abc.xyz.name}}
von meiner Vorlage es gut läuft.
Ich habe Verwendung Zeit in meinem Code festlegen, weil ich meine Daten von Promise (d. H. Asynchroner Anruf).
Ich kann zunächst als abc
ist null
verstehen, ist mein Code nicht abc.xyz.name finden. Aber ich möchte keine Umstände unter die Lupe nehmen. Weil ich mehrere Eigenschaften in einem JSON habe und es nicht möglich ist, dass jede Eigenschaft schreibt, wenn es eine Bedingung ist.
Früher in angularjs 1 Wenn abc null ist, wird es automatisch durch leere Zeichenfolge ersetzt. Ich möchte dasselbe in angular2 tun. Bitte vorschlagen.
Unten ist der Plunker
https://plnkr.co/edit/u1NqNF0penz7OS55QmoU?p=preview
Sie sparte mein Tag! Vielen Dank! – Gandarez