我可以通过执行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);
}
getHeroes
方法是异步的,因此您需要在回调本身内移动console.log
。否则,结果还没有:
this.heroService.getHeroes().then(heroes => {
this.heroes = heroes;
console.log("get heroes: "+this);
});
如果在调用console.log
方法后使用getHeroes
,则在类上设置heroes
属性之前显示一些内容。