网站搜索

使用 Typescript + Angular 填充日期输入


我一直在尝试用 TypeScript 填充一个日期输入,但没有成功:

我得到了三个日期,格式如下:dd/MM/yyyy……所以,我解析了每个数字以将其格式更改为 yyyy-MM-dd,然后使用 datepipe 将其分配给每个输入的 ngModel 变量。我尝试了不同的格式,但似乎不起作用。

HTML:

<div>
    <input type="date" ngModel="inputDate | date:'yyyy-MM-dd'"">
</div>

<div>
    <input type="date" ngModel="inputDateFrom | date:'yyyy-MM-dd'"">
</div>
<div>
    <input type="date" ngModel="inputDateTo | date:'yyyy-MM-dd'"">
</div>

TS:

let dateFill = data[4] + '/' + data[5] + '/' + data[6];
let parsedDate = dateFill.split("/");

this.inputDate = this.datepipe.transform(new Date(parsedDate[2] + '-' + parsedDate[1] + '-' + parsedDate[0]), 'yyyy-MM-dd');
this.inputDateFrom = this.datepipe.transform(new Date(parsedDate[5] + '-' + parsedDate[4] + '-' + parsedDate[3]), 'yyyy-MM-dd');
this.inputDateTo = this.datepipe.transform(new Date(parsedDate[8] + '-' + parsedDate[7] + '-' + parsedDate[6]), 'yyyy-MM-dd');

答案#1

为了使绑定生效,你需要用 [( 包围 ngModel,像这样:

<input type="date" [(ngModel)]="inputDate | date:'yyyy-MM-dd'"">

有关绑定的更多信息可以在文档中找到

你也不能在 ngModel 绑定中使用管道,所以你需要移除它:

<input type="date" [(ngModel)]="inputDate">