Я пытаюсь привязать строку даты (отформатированную в формате ISO 8601 [например, "2009-02-15T00: 00: 00Z"], которая, по моему мнению, является значением по умолчанию для newtonsoft для https://www.newtonsoft.com/json/help/html/DatesInJSON.htm), дляМодуль календаря PrimeNg.
<p-calendar [(ngModel)]="myISO8601FormattedStringVariable" [showTime]="true"></p-calendar>
На этой странице (https://github.com/primefaces/primeng/issues/1895)) календарь PrimeNg поддерживает строковые входы ISO 8601, но я постоянно получаю сообщение об ошибке. Ошибка «Uncaught (in обещание)»:Неожиданный литерал в позиции 2 в resolPromise ". Я видел эту ошибку в других вопросах переполнения стека, которые ссылаются на установку свойства" dataType "равным" string ", но, похоже, это формат вывода, а не формат ввода.
Когда я смотрю на исходный код, связанный с фиксацией (https://github.com/primefaces/primeng/commit/ecd3b04ef913c123c787118c5474ecb75437dd2d),, похоже, что части даты и времени разделяются на основе "", а не "T", чего я больше ожидал.
parseValueFromString(text: string): Date {
let dateValue;
let parts: string[] = text.split(' ');
if(this.timeOnly) {
dateValue = new Date();
this.populateTime(dateValue, parts[0], parts[1]);
}
else {
if(this.showTime) {
dateValue = this.parseDate(parts[0], this.dateFormat);
this.populateTime(dateValue, parts[1], parts[2]);
}
else {
dateValue = this.parseDate(text, this.dateFormat);
}
}
return dateValue;
}
Не понимаю ли я, что я должен делать, или что предполагается поддерживать, или это ошибка?
Я смотрю на «простой обходной путь», отмеченный вссылка на github выше, но я бы хотелnfirm, если это поддерживается, или если я делаю это неправильно.
Я использую v7 PrimeNg.