Могу ли я преобразовать строку в дату в * ngFor? - PullRequest
0 голосов
/ 23 октября 2018

Я использую Angular с библиотекой PrimeNg. У меня есть этот компонент:

<td *ngFor="let item of items">
  <p-calendar
    showTime="true"
    [(ngModel)]="item.testDate">
   </p-calendar>
</td>

Я получаю значение item.testDate из моей базы данных в виде строки.Однако мне нужно, чтобы он был типа Date.

Есть ли способ, которым я могу сделать это с чем-то вроде углового выражения.Что-то вроде: [(ngModel)]="new Date(item.testDate)"

Или обнажая, как еще я могу преобразовать эту строку в Date?

Ответы [ 3 ]

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

Angular имеет встроенный канал даты, который может конвертировать 1. объект даты 2. число или 3. строку ISO в значение даты в соответствии с правилами локали.Я думаю, это то, что вы намереваетесь сделать, так как вы не прояснили это в вопросе.

Может использоваться как

{{ value_expression | date [ : format [ : timezone [ : locale ] ] ] }}

Для получения дополнительной информации Угловая труба данных

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

Я думаю, что вы должны использовать угловую трубу даты.Но вы не можете использовать его в ngModel напрямую.

Пример;

<td *ngFor="let item of items">
  <p-calendar showTime="true" [(ngModel)]="(item.testDate | date:'fullDate')" 
     (ngModelChange)="item.testDate = $event">
  </p-calendar>
</td>

Пожалуйста, обратитесь к типу даты по этой ссылке: https://angular.io/api/common/DatePipe

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

Что я предлагаю, так это то, что вам нужно конвертировать его в дату в вашем сервисе (к тому времени, когда вы получите данные, конвертировать его), в контроллере или фильтре, а не в вашем представлении.Держите ваш взгляд простым.

...