Yerel bir json dosyasını okumaya ve aynı özelliklere sahip olan bir sınıfa ayrıştırmaya çalışıyorum. Sınıftan okumaya çalıştığımda, sınıfın boş ya da tanımsız olduğunu söyleyen hatalar veriyor.http.get() öğesinden yüklenen JSON verileri Angular 2 şablonumda tanımlanmamış
import {Item} from '../item/item';
export class Hall {
constructor(public id:number,
public naam:string,
public oppervlakte:number,
public aantalItems:number,
public itemsMetNodigeActie:number,
public items:Item[]) {
}
}
O item.ts
kullanır:
Şöyle bir dosya hall.ts
var
export class Item {
constructor(public categorie:string,
public naam:string,
public productnummer:string,
public omschrijving:string,
public laatsteUitgevoerdeActie:Actie,
public eerstVolgendeActie:Actie) {
}
}
export class Actie{
constructor(datum: string,
type: string,
omschrijving: string){}
}
json dosyası, hall1.json
, ben böyle görünüyor okumaya çalışıyorum o:
{
"id": 1,
"naam": "hall1",
"oppervlakte": 100,
"aantalItems": 3,
"itemsMetNodigeActie": 3,
"items": [
{
"id": 1,
"categorie": "machine",
"productnummer": "ADE124e",
"omschrijving": "print papieren af",
"laatsteUitgevoerdeActie": {
"datum": "2015-01-05T00:00:00.000Z",
"type": "vervanging",
"omschrijving": "papier vervangen"
},
"eerstVolgendeActie": {
"datum": "2016-01-06T00:00:00.000Z",
"type": "vervanging",
"omschrijving": "inkt vervangen"
}
}
]
}
hall.service.ts
kullanıyorum h, yerel olarak depolanan json dosyasını okumaya çalışır ve Hall
nesnesinde döndürür. Bu Bunu yaptığın için Methode geçerli:
public getHall(): Observable<Hall> {
return this.http.get('app/hall/hall1.json')
.map((res:Response) => res.json());
}
Ben Şimdiye kadar bana herhangi bir hata vermez benim hallDetail.component.ts
export class HallDetailComponent implements OnInit{
public hall: Hall;
constructor(
private service: HallService
){}
ngOnInit(){
this.service.getHall().subscribe((hall:Hall) => {
this.hall = hall;
})
}
}
bu yöntemi kullanmak, ama hall
nesneden okumaya çalıştığınızda , buna tanımsız olduğunu sais
@Component({
template: `
<div>
{{hall.naam}}
</div>
`
})
Hata:
EXCEPTION: TypeError: Cannot read property 'naam' of undefined in [
{{hall.naam}}
in [email protected]:7]
Aslında içerik yükleyip yüklemediğini görmek için result.json() günlüğünü kaydetmeyi denediniz mi? – toskv
[Elvis Operator] 'a göz atın (https://angular.io/docs/ts/latest/guide/template-syntax.html) –