2016-02-13 55 views
1

我可以從模板中處理JSON,類似於我放置的第二個代碼?AngularJS2模板句柄JSON


第一代碼。

這種運作良好當它被用來.json[]和使用.map()

@Component({ 
..// 
template: `..// 
      <li *ngFor="#user of users"> 
      JSON: {{ user.name }} 

      ..//` 


    get(){ 

    this.http.get('lib/sampleResAPI.json') 
    .map(res => res.json()) 
    .subscribe(users => this.users = users); 
    ..// 
    } 

sampleResAPI.json(使用[] []

[ 
{ 
    "id": 362, 
    "name": "test", 
..// 
} 
] 

但我收到的答案不是[.json]中的[]。警報顯示,罰款與users.name,alert(this.users.name);但我無法處理它從模板{{users.name}}獲取未定義的屬性。

- >第二碼未發現

@Component({ 
..// 
template: `..// 

      JSON: {{ users.name }} 

      ..//` 


    get(){ 

    this.http.get('lib/sampleResAPI.json') 
    //.map(res => res.json()) 
    .subscribe(users => this.users = users.json()); 

    //this.u = JSON.parse(this.users); 
    alert(this.users.name); 
    ..// 
    } 

sampleResAPI.json不[]

{ 
    "id": 362, 
    "name": "test", 
..// 
} 

有辦法處理.json,類似於警報user.name,在模板中,或者我做錯了什麼,就是這樣。

回答

2

嘗試

JSON: {{ user?.name }} 

涵蓋的時間user設置

+0

哦,我的好人,我已經嘗試了數百個沒有任何結果的語法,您的答案很好,謝謝 –

+1

這是貓王操作員或安全導航操作員。只有當'user'爲!= null/undefined時,它纔會評估'.name'。你不能在任何地方使用它(例如'user?[x]'不支持。爲此,你需要'user?user [x]:null' –

+0

非常感謝解釋 –

0

之前,我不知道理解這個問題。你能不能給我們users結果爲每個用例與JSON管道運營商的內容:

@Component({ 
    ..// 
    template: `..// 
    JSON: {{ users | json }} 
    ` 
}) 

users.name應始終返回,因爲nameundefined是數組不是數組本身的元素的屬性..

+0

感謝您的回覆@GünterZöchbauer,我正在尋找。 –