2017-04-07 18 views
0

我目前從服務器獲取json對象,而且對象也有很多嵌套的json對象。到目前爲止,我一直使用* ngFor =「let a of data | pipe」(管道獲得深度嵌套值)和單插值{{a.value ['someValue']}}來獲得深度嵌套值JSON對象的其他情況,但這不是我的目的,因爲我不想循環我的JSON。Angular2是否有可能得到深嵌套的json值而不使用ngFor?

有什麼辦法可以在不使用ngFor的情況下獲得深度嵌套的json值嗎?

我從服務器獲取的json對象的一部分。

UserProfile: 
{name: 'Jess' 
University: 'UC Berkley' 
Major: 'Media Communication' 
birthday: 1994} 

categoryInfo: 
["inish work with quality"] 

currentArea 
:"CA" 

introInfo { 
experience: [ 
0: {Company: 'Atlas', workingYears: 1, **recLetter**:'She was on time always, 
never late. The quality of her work is very high-level.'} 
1: {Company: 'Footstep', workingYears: 2, recLetter:'She was on time always, 
never late. The quality of her work is very high-level.'} 
] 
introduction: "Hello I'm Jess" 
} 

如果我使用上述的方法,它只會循環4個鍵(用戶配置,categoryInfo,currentArea和introInfo),我不想。

如何在不使用* ngFor的情況下獲取粗體(recLetter)的值?

在我的組件中,我正在這樣做。

userInfo: UserDetailInfo[]; 

    getUserDetail(): void { 

    this.userDetail.getUserDetail() 
    .subscribe 
    (
     userInfo => this.userInfo = userInfo, 
     error => this.errorMessage = error 
     ) 
    } 

我想這在HTML模板,但沒有工作,我不知道怎麼去「recLetter」

{{userInfo.experience['0']}} 

請幫幫忙!

預先感謝您

回答

0

對於初學者來說,讓我們假設你得到experience陣列總是相同的,有2個元素。 ,你需要在HTML做的唯一事情是這樣的:

{{ userInfo.experience[0].recLetter }} 

如果要遍歷整個數組exeperience和顯示recLetter你可以這樣做:

<div *ngFor="let item of userInfo.experience"> 
    {{item.recLetter}} 
</div> 
0

試試這個

properties.pipe.ts

import {Pipe} from '@angular/core'; 

@Pipe({name: 'properties'}) 
export class PropertiesPipe { 
    transform(o: {}) { 
    return Object.entries(o).map(([key, value]) => ({ 
     key, 
     value 
    })); 
    } 
} 

app.module.ts

import {propertiesPipe} from './properties.pipe'; 

@NgModule({ 
    declarations: [PropertiesPipe, /* whatever else was here */], 
    // ... whatever else was here 
}) export class AppModule { } 

component.html

<ul> 
    <li *ngFor="property of userInfo | properties"> 
    <span *ngIf="!Array.isArray(property.value)"> 
     {{property.key}}: {{property.value}} 
    </span> 
    <span *ngIf="Array.isArray(property.value)"> 
     {{property.key}}: <span *ngFor="value of property.value">{{value}}, </span> 
    </span> 
    </li> 
</ul> 
相關問題