* ngFor对象属性未定义

时间:2016-04-12 20:31:53

标签: angular ionic2 ngfor

我开始使用来自Angular 1的Angular 2,我无法想象如何在对象的属性上使用ngFor。 this.myVar是根据HTTP请求的结果定义的,该请求定义了attr属性。

这是我的代码:

# my_page.ts
import {Page} from 'ionic-angular';
import {MyService} from '../../services/my_service';

@Page({
  templateUrl: 'build/pages/my_page/my_page.html',
  providers: [MyService]
})


export class MyPage {
  public myVar;

  constructor(private myService: MyService) {
    this.myService.fetch().subscribe(
      data => this.myVar = data
    );
  }
}

# my_page.html
<div *ngFor="#item of myVar.attr">
</div>

这就是错误:

  

EXCEPTION:TypeError:无法读取[myVar.attr in ...]中未定义的属性'attr'

谢谢!

1 个答案:

答案 0 :(得分:20)

因为最初ajax完成myVar之前没有任何价值。在评估ngFor的表达式时,它尝试访问未定义对象的attr属性。请使用[Elvis operator] [1],让?检查对象是否已定义,如果已定义,则仅从中评估attr属性。

<div *ngFor="let item of myVar?.attr"></div>