Angular2:日期格式文本框ngModel不起作用
仍在学习Angular2。 有一个表格,我有一个startDate和endDate,我想为每个输入项目。 我使用双向绑定与我的模型对象的形式。
<input type="date" name="EndDate" class="form-control input-sm" [(ngModel)]="selectedDeal.Enddate" required />
我的模型的日期属性是Date类型的:
public EndDate: Date,
当我运行它并绑定一个有效日期的模型时,它会在文本框中显示mm / dd / yyyy。 我假设HTML5 type =“date”支持。 但它没有显示实际的日期。 它内置了日期选取器,非常好,但没有显示已经在属性中的日期。
如果我将type =“date”更改为type =“text”,我会看到类似2018-12-31T00:00:00的内容,并且失去了我的日期支持,而且这不方便用户使用。
我试图避免:1)必须使用错误的数据类型(字符串)并将日期格式化为字符串以供使用 - 这似乎是一个糟糕的想法和实践2)使用Javascript后表单显示尝试覆盖值字符串格式化的日期文本
有没有更简单的方法来处理这个问题?
你可以通过分离绑定和做少量管道来实现这一点。
模板:(注意日期管道使用2016-12-31
格式,并且ngmodel和modelchange已被拆分)
<input type="date" name="EndDate" class="form-control input-sm" [ngModel]="selectedDeal.EndDate | date: 'y-MM-dd'" (ngModelChange)="dateChanged($event)" required />
零件:
private dateChanged(newDate) {
this.selectedDeal.EndDate= new Date(newDate);
console.log(this.selectedDeal.EndDate); // <-- for testing
}
链接地址: http://www.djcxy.com/p/31091.html