*ngFor 对象属性未定义
*ngFor object attribute undefined
我从 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: Cannot read property 'attr' of undefined in [myVar.attr in ...]
谢谢!
因为最初直到 ajax
完成 myVar
中没有任何值 & 在评估 ngFor
的表达式时,它尝试访问 attr
属性 未定义的对象。请使用 [Elvis operator
][1],通过 ?
它将检查对象是否已定义,如果已定义,则仅从中计算 attr
属性。
<div *ngFor="let item of myVar?.attr"></div>
我从 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: Cannot read property 'attr' of undefined in [myVar.attr in ...]
谢谢!
因为最初直到 ajax
完成 myVar
中没有任何值 & 在评估 ngFor
的表达式时,它尝试访问 attr
属性 未定义的对象。请使用 [Elvis operator
][1],通过 ?
它将检查对象是否已定义,如果已定义,则仅从中计算 attr
属性。
<div *ngFor="let item of myVar?.attr"></div>