2016-04-01 332 views
0
我使用Angular2

從JSON陣列價值觀和我已經以這種方式獲取的火力地堡,從一些數據:打印屬性在Angular2

dataset: any; 
onGetData() { 
    this._dataService.getAllData() 
     .subscribe(
     data => this.dataset = JSON.stringify(data), 
     error => console.error(error) 
    ); 

,如果我打印dataset我得到這個JSON:

{"-KE8XuCI7Vsm1jKDJIGK":{"content":"aaa","title":"bbb"},"-KE8XvM268lWhXWKg6Rx":{"content":"cccc","title":"dddd"}} 

如何從此JSON數組中打印出僅由title值組成的列表?

我想有:BBB - dddd完整

回答

0

在你看來,你需要

<div *ngFor='#data of dataset'> 
    {{ data.title }} - 
</div> 
+0

它不起作用。我已經試過這樣:http://stackoverflow.com/questions/36339173/cant-show-data-retrieved-from-firebase?noredirect = 1#comment60309480_36339173但我得到了那個錯誤。我也嘗試添加一個管道MapToIterable,但它仍然沒有工作 – splunk

+0

哦,那是因爲數據集不是數組。你需要它是一個數組循環通過這樣的數據 – Austin

+0

我在控制檯中得到這個錯誤:錯誤:找不到不同的支持對象'{「-KE8XuCI7Vsm1jKDJIGK .... 我試着用數據集:對象[ ]而不是數據集:任何,但它給了我這一行的錯誤:data => this.dataset = JSON.stringify(data) – splunk

2

只能遍歷使用ngFor數組。在你的情況下,你需要實現一個自定義管道來迭代對象的鍵。

類似的東西:

@Pipe({name: 'keyValues'}) 
export class KeysPipe implements PipeTransform { 
    transform(value, args:string[]) : any { 
    let keys = []; 
    for (let key in value) { 
     keys.push({key: key, value: value[key]); 
    } 
    return keys; 
    } 
} 

,並使用它像:

<span *ngFor="#entry of dataset | keyValues">   
    Title: {{entry.value.title}} 
</span> 

看到這個問題的更多細節: