Arrays 以Angular2格式打印JSON数组中的属性值

Arrays 以Angular2格式打印JSON数组中的属性值,arrays,angularjs,json,angular,Arrays,Angularjs,Json,Angular,我正在使用Angular2,并通过以下方式从Firebase检索到一些数据: dataset: any; onGetData() { this._dataService.getAllData() .subscribe( data => this.dataset = JSON.stringify(data), error => console.error(error) ); 如果我打印dataset我会得到这个JSON:

我正在使用Angular2,并通过以下方式从Firebase检索到一些数据:

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

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

{{data.title}}-
在您的视图中,您需要

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

{{data.title}}-

您只能使用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>
然后像这样使用它:

@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>

标题:{{entry.value.Title}
有关更多详细信息,请参见此问题:


您只能使用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>
然后像这样使用它:

@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>

标题:{{entry.value.Title}
有关更多详细信息,请参见此问题:


它不起作用。我已经用这种方法试过了,但我犯了那个错误。我还尝试添加一个管道映射表,但它仍然不起作用,这是因为数据集不是数组。你需要它是一个数组来循环遍历数据,就像我在控制台中得到这个错误:错误:找不到不同的支持对象“{”-KE8XuCI7Vsm1jKDJIGK…我尝试使用dataset:object[]而不是dataset:any,但它在这一行上给了我错误:data=>this.dataset=JSON.stringify(数据)它不起作用。我已经这样尝试过了:但我得到了那个错误。我也尝试过添加管道映射到terable,但它仍然不起作用,这是因为数据集不是数组。你需要它是数组才能像这样循环数据。我在控制台中得到这个错误:错误:找不到不同的支持对象“{”-KE8XuCI7Vsm1jKDJIGK…我尝试使用dataset:Object[]而不是dataset:any,但它在这一行上给出了错误:data=>this.dataset=JSON.stringify(数据)