2016-07-28 65 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属性之前显示的东西。