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

上一篇: Angular2: Date Format Textbox ngModel doesn't work

下一篇: Bind JSON to DevExtreme datagrid