相当于Angular2中的ng-repeat获取JSON对象的key
Equivalent to ng-repeat in Angular2 to get the keys of JSON object
我正在寻找一种使用 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]
中。
我正在寻找一种使用 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]
中。