Cercando di visualizzare la risposta del json http nella vista angular2. Per iniziare, ho completato un'esercitazione specifica per .NET core e Angular2 con Typescript. Tutto ha funzionato bene, quindi ho provato a modificarlo un po ', ma sembra che mi sono bloccato e non riesco a trovare la risposta. Questo è quello che ho finora.Angular2 http get json issue
wall.main.component.ts
import {Component, OnInit} from "angular2/core";
import {CORE_DIRECTIVES} from "angular2/src/common/directives/core_directives";
import {WallService} from "./wall.service";
@Component({
selector: "wall",
templateUrl: "app/components/wall/wall.main.html",
providers: [WallService],
directives: CORE_DIRECTIVES
})
export class WallComponent implements OnInit {
data: any;
constructor(private service: WallService) { }
ngOnInit() {
this.get();
console.log(this.data);
}
get() {
this.service.get().subscribe((json: any) => {
console.log(json);
this.data = json;
});
}
}
wall.service.ts
import "rxjs/Rx"
import {Http} from "angular2/http";
import {Injectable} from "angular2/core";
@Injectable()
export class WallService {
constructor(private http: Http) { }
get() {
return this.http.get("wall/getwallposts").map(response => response.json());
}
}
wall.main.html
<wall>
<p>{{data.Id}}</p>
<p>{{data.Body}}</p>
</wall>
Html non visualizza i dati. L'errore:
TypeError: Cannot read property 'Id' of undefined in [{{data.Id}} in [email protected]:7]
Provato un sacco di modi. Accesso come array con i dati dell'indice [0] .Id, modifica dei tipi di variabile, nulla. Anche questo console.log (json) funziona bene. Posso vedere e leggere l'oggetto nella console, ma l'altro console.log (this.data) mostra undefined, che mi aspetterei sia lo stesso. Cosa mi manca?
Prova '{{dati? .ID}} –