SaveLolliPoP
@SaveLolliPoP
1 / 0 = ∞

Как сопоставить данные и вывести результат?

Ко мне приходит из базы данных объект, условно:

obj = {
action: 'meet'
}


Так же есть массив:
PanelControl: Array<Object> = [
    {action: 'call', translate: 'Звонок'},
    {action: 'meet', translate: 'Встреча'},
    {action: 'task', translate: 'Задача'},
  ];


Сейчас у меня выводится объект из бд естественно таким образом:
<div class="wrapp" *ngFor='let x of obj'>
      <span>{{x.action}}</span>
</div>

И естественно выводится результат "meet", как сделать сопоставленный вывод результата, чтобы выводилось "Встреча".

То же самое и с датами.
Выводится у меня дата, условно 27.02.2019 (полный формат даты из бд в iso ), и если сегодня 27.02.2019 я хочу выводить "Сегодня", а не дату.

Как можно это реализовать? На ум ничего не приходит
  • Вопрос задан
  • 111 просмотров
Решения вопроса 2
@barolina
turn coffee into code
В Angular 6.1 был KeyValuePipe, который позволяет выполнять итерацию свойств объекта:

<div *ngFor="let x of object | obj">
  {{x.key}}:{{x.value}}
</div>
Ответ написан
Комментировать
Qairat
@Qairat
frontend developer, angular 2+
obj = {
action: 'meet'
}

здесь точно просто объект? или это массив объектов.
Если это объект то у тебя в шаблоне for не сработает. Скорей всего это массив.
Если это массив, то примерно так можно сопоставить.

А если все таки это один объект, то можешь использовать просто filter.
this.new Array = this.PanelControl.filter(f => f.action === obj.action);


А насчет даты тебе надо проверку сделать используя moment или же без него, примерно так:
let now = moment().format('YYYY.MM.DD');
checkDate(date) {
 if (date === now) {
  return 'Сегодня'
 }
}

Либо прям в шаблоне где выводишь дату можно проверку поставить
<span>{{now === x.date ? 'Сегодня': x.date}}</span>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы