Отображать только значения объекта, используя канал - PullRequest
0 голосов
/ 17 октября 2018

У меня есть следующий объект:

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

Когда я помещаю его через трубу 'json' {{object |json}} он получается как должен, как целая строка JSON.Тем не менее, я хотел бы, чтобы это выглядело больше как:

D12-D12-0-C07

Я знаю, что мог бы просто отобразить каждый объект с помощью {{object? .Cvaluevalve1}} и так далее, но я бы хотел использовать для этого канал,Как я могу добиться этого с помощью трубы?Мне нужна нестандартная труба?

Заранее спасибо.

Ответы [ 4 ]

0 голосов
/ 17 октября 2018

Вы также можете попробовать это с Underscore.js

    var obj = {
      "cvaluevalve1": "D12",
      "cvaluevalve2": "D12",
      "cvaluevalve3": 0,
      "backvalue": "C07"
    };
    var value = _.values(obj).join('-');
0 голосов
/ 17 октября 2018

В Angular 6 теперь есть канал ключевого значения для итерации по объекту

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

для получения дополнительной справки канал ключевого значения

0 голосов
/ 17 октября 2018

Если это то, что просто будет использоваться в Компоненте, а затем этот компонент будет использоваться в нескольких местах, вместо создания канала, вы можете просто сделать это:

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

В вашем шаблоне:

{{ value }}
0 голосов
/ 17 октября 2018

В случае, если вы хотите использовать трубу здесь -

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

Если вы все равно хотите, чтобы значение отображалось -

value = Object.values(obj).join('-'); // component.ts
{{ value }} // component.html
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...