2016-07-28 66 views
0

我可以從getHeroes()方法讀取「title」porperty做這個.title,如果我做console.log我可以看到它,但不能與「英雄」屬性,我嘗試過「this.heroes [0] .id」「this.heroes」和所有未定義的內容。但是,如果我做console.log(這)的JavaScript控制檯顯示我所有的屬性。 我在做什麼錯?Angular 2閱讀json屬性undefined,但其他屬性好

感謝

export class AppComponent implements OnInit { 
    title = 'Tour of Heroes'; 
    heroes: Hero[]; 
    selectedHero: Hero; 
    rows: Object[]; 

    constructor(private heroService: HeroService) { } 

    getHeroes() { 
    this.heroService.getHeroes().then(heroes => this.heroes = heroes); 
    //console.log("get heroes: "+this); 
    } 

    getRows(){ 
    var n = 3; 
    for(var i=0; i<1;i++){ 
     console.log(this.title); 
    } 

回答

0

getHeroes方法是異步的,所以你需要回調本身內移動console.log。否則,結果現在還沒有:

this.heroService.getHeroes().then(heroes => { 
    this.heroes = heroes; 
    console.log("get heroes: "+this); 
}); 

如果您在getHeroes方法的調用之後使用console.log,你設置的類heroes屬性之前顯示的東西。