2016-04-12 15 views
4

私はAngular 1からAngular 2を開始していますが、オブジェクトの属性にngForを使用する方法はわかりません。 this.myVarは、attr属性を定義するHTTP要求の結果に対して定義されます。* ngForオブジェクトの属性が定義されていません

は、ここに私のコードです:

# 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 ...]

ありがとうございます!

答えて

11

ajaxが完了します初めまでngForの発現を評価しながらmyVarはそれ&の任意の値を持っていない、それは未定義のオブジェクトのattrプロパティにアクセスしようとするため。 ?オブジェクトが定義されているかどうかをチェックし、それが定義されている場合はそれからattrプロパティを評価することによって[Elvis operator] [1]を使用します。

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

ありがとう、これは私が探していたものです! Arrayの位置にこのようなものを使用できるかどうか知っていますか? 'myVar?[0]' – akz92

+0

@ akz92のように、あなたはそれを行うことができますが、なぜそれをやりたかったのですか?あなたはコレクションの各要素が 'ngFor'によってキャッチされています –

+0

私はちょうど興味があります:) – akz92

関連する問題