2017-03-02 37 views
2

我正在使用Angular 2,並且正在進行API調用以獲取一些JSON。該電話有效,我收到回覆。無法讀取angular2中未定義的屬性

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存在。在這種情況下,在模板第一次加載的時候,這是沒有定義的,但是在一小會兒之後它確實存在,但是之前已經太遲了,錯誤已經被拋出了? – Chris

+0

@Chris,yup - 就是這樣 – snorkpete

+0

希望我知道這12小時前!!!!謝謝 – Chris

相關問題