相当于 Angular2 中的 ng-repeat,用于获取 JSON 对象的键



我正在寻找一种使用 Angular2 将 JSON 对象浏览到 HTML 页面的方法。为了获取每个键和每个值。

在 AngularJS 中,可以使用指令 ng-repeat

<div ng-repeat="(key, data) in dataSets">{{key}}</div>

但是在 Angular2 中,我找不到这样做的好方法。

这是我的对象:

Object {name: "Rue Saint-Nestor", oneway: "yes", highway: "residential",   maxspeed: "50", source:maxspeed: "FR:urban"}

我只想分别获取键和值。我知道它可能与Object.keys()一起执行,但如果可能的话,我想使用这些指令。

谢谢!

您可以创建一个自定义管道来执行此操作

@Pipe({name: 'toKeyValueList'})
export class ToKeyValueListPipe implements PipeTransform {
  transform(value:number, args:string[]) : any {
    return // transform map to a list of keys and values
  }
}
<div *ngFor="let pair in dataSets | toKeyValueList">{{pair.key}} - {{pair.value}}</div>

您应该缓存结果,因此,如果输入没有更改,则输出不应更改,否则 Angular 会在调试模式下生成错误消息。

不要忘记将管道添加到要使用它的@Component()注释的pipes: [ToKeyValueListPipe]

最新更新