使用管道仅显示对象的值

时间:2018-10-17 06:07:15

标签: javascript json angular

我有以下对象:

{
  "cvaluevalve1": "D12",
  "cvaluevalve2": "D12",
  "cvaluevalve3": 0,
  "backvalue": "C07"
}

当我通过“ json”管道{{object | json}},它应该以完整的JSON字符串形式出现。但是,我希望它看起来更像:

D12-D12-0-C07

我知道我可以使用{{object?.cvaluevalve1}}来显示每个对象,依此类推,但我想为此使用管道。如何使用管道来实现?我需要自定义管道吗?

谢谢。

4 个答案:

答案 0 :(得分:2)

Angular 6现在具有用于遍历对象的键值管道

<div *ngFor="let item of object | keyvalue">
  {{item.key}}:{{item.value}}
</div>

更多参考信息keyvalue pipe

答案 1 :(得分:2)

如果这只是一个组件中要使用的东西,然后该组件将在多个地方使用,而不是创建管道,则可以这样做:

obj = {
  "cvaluevalve1": "D12",
  "cvaluevalve2": "D12",
  "cvaluevalve3": 0,
  "backvalue": "C07"
}
value  = Object.values(this.obj).join('-')

在您的模板中:

{{ value }}

答案 2 :(得分:1)

如果要在此处使用管道-

export class JsonPipe implements PipeTransform {
   transform(obj: any) : any{
      return Object.values(obj).join('-');
   }
}

如果您只想在视图中查看值-

value = Object.values(obj).join('-'); // component.ts
{{ value }} // component.html

答案 3 :(得分:0)

您还可以尝试使用Underscore.js

    var obj = {
      "cvaluevalve1": "D12",
      "cvaluevalve2": "D12",
      "cvaluevalve3": 0,
      "backvalue": "C07"
    };
    var value = _.values(obj).join('-');