Angular 2读取json属性undefined但其他属性都没问题

问题描述 投票:0回答:1

我可以通过执行this.title的getHeroes()方法读取“title”属性,如果我执行console.log我可以看到它,但没有“英雄”属性,我尝试过“this.heroes [0] .id”“this.heroes “而且一切都未定义。但如果我做console.log(this),JavaScript控制台会向我显示所有属性。

我做错了什么?

  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);
    }
angular
1个回答
0
投票

getHeroes方法是异步的,因此您需要在回调本身内移动console.log。否则,结果还没有:

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

如果在调用console.log方法后使用getHeroes,则在类上设置heroes属性之前显示一些内容。

© www.soinside.com 2019 - 2024. All rights reserved.