2017-03-02 30 views
2

私はAngular 2を使用していて、JSONを取得するAPI呼び出しを行っています。コールは機能し、私は応答を得ます。私のテンプレート内のangle2で未定義のプロパティを読み取ることができません

export class DetailsPage { 

    public userID; 
    v: any = {};   

    constructor(public navCtrl: NavController, public navParams: NavParams, public http: Http) { 

    this.userID = navParams.get('userID'); 

    var headers = new Headers(); 
    headers.append('Content-Type', 'application/x-www-form-urlencoded'); 

    let urlSearchParams = new URLSearchParams(); 
    let body = urlSearchParams.toString(); 

    this.http.get('http://api.domain.com/visitor/'+this.userID, {headers:headers}).map(res => res.json()).subscribe(data => { 
     this.v = data.res; 
    }); 

    } 

} 

私が持っている:

<pre>{{v | json}}</pre> 

をそして、これは私に私JSONを示しています...

{ 
    "user": { 
    "id": "794149", 
    "tag_name": "", 
    "tag_id": "0", 
    "tag_style": { 
     "color": null, 
     "font": null, 
     "style": "label-default" 
    } 
    }, 

しかし、どのように私は、ユーザーのIDを表示することができますか?

私は..

{{ v.user.id }} 

を試してみましたが、しかし、これは私にエラーを与える:オブジェクトのプロパティにバインドする

Error in ./DetailsPage class DetailsPage - caused by: Cannot read property 'id' of undefined 

答えて

6

は、安全運航事業者"?" nullを使用することができます。

{{v?.user?.id}} 
+0

これは機能します。どうして?私はv.user.idが存在することを知っています。テンプレートが最初にロードされた時点で、これは定義されていませんが、1秒後には存在しますが、以前はあまりにも遅く、エラーは既にスローされていましたか? – Chris

+0

@Chris、yup - それはそれです – snorkpete

+0

私はこれを12時間前に知っていました!!!!ありがとうございました – Chris

関連する問題