Angular: форматирование даты с использованием канала с пользовательской строкой

#javascript #angular #datetime

#javascript #angular #дата-время

Вопрос:

Я новичок в angular. Я использовал канал для форматирования даты. Я использовал следующее, но не сработало.

 <tr *ngFor="let item of items; index as i" [attr.data-rel]="'sometext-'   item.startTime | dateFormat ">
  

Если я удалю либо 'timeslot-' либо | dateFormat , это сработает, но при конкатенации строк это не сработает.

Работает следующее.

 <tr *ngFor="let item of items; index as i" [attr.data-rel]="'sometext-'   item.startTime">
  

Или

 <tr *ngFor="let item of items; index as i" [attr.data-rel]="item.startTime | dateFormat ">
  

Комментарии:

1. каков ожидаемый результат? Форматированный someText — (dateformated) или (sometext-date)?

2. @cucuru ожидаемый результат: someText-dateformatted

3. <tr *ngFor="let item of items; index as i" [attr.data-rel]="'sometext-' (item.startTime | dateFormat )">

4. перенос (item.startTime | dateFormat ) между круглыми скобками

5. @NadhirFalta Круто. Это работает, пожалуйста, опубликуйте это в качестве ответа. Спасибо. 🙂

Ответ №1:

перенос (item.startTime | dateFormat ) между круглыми скобками

<tr *ngFor="let item of items; index as i" [attr.data-rel]="'sometext-' (item.startTime | dateFormat )">

Ответ №2:

Создайте пользовательский канал

 import { Pipe, PipeTransform } from '@angular/core';

@Pipe({ name: 'dateFormat' })
export class DateFormat implements PipeTransform {
  transform(date: Date, text: string): string {
    return text   date.toString();
  }
}
  

назовите это следующим образом

 <tr *ngFor="let item of items; index as i" [attr.data-rel]="item.startTime | dateFormat : 'sometext'  ">