动作表达式不能包含管道。您可以通过将
[(ngModel)]
提供的双向绑定分为属性绑定和事件绑定来实现更复杂的绑定。然后可以将日期管道包含在属性绑定表达式中:
<input [ngModel]="item.value | date:'yyyy-MM-dd'" (ngModelChange)="item.value=$event" type="data" />
示例中的
input
标签需要如下所示的内容:
<input [ngModel]="CustomerVM.customer.CustomerDob | date:'yyyy-MM-dd'" (ngModelChange)="CustomerVM.customer.CustomerDob=$event" type="date" name="MemberDateOfBirth" class="form-control" (blur)="Calculate_Age(CustomerVM.customer.CustomerDob)">
你的服务应该是这样的:
FormatDate(iDate: Date) {
var inputDate = new Date(iDate);
var formattedDate = inputDate.getFullYear()+'-'+(inputDate.getMonth() + 1)+'-'+
inputDate.getDate();
return formattedDate;
}
在你的 ts 文件中应该有这样的:
let newDate = new Date(this.CustomerVM.customer.CustomerDob);
this.CustomerVM.customer.CustomerDob = this.Helper.FormatDate(newDate);
日期的响应是时间戳格式。时间戳值未填充您的日期字段,因此您需要将时间戳格式转换为日期格式。
var datePipe = new DatePipe("en-US");
let formatedyear = datePipe.transform(this.CustomerVM.customer.CustomerDob, 'MM/dd/yyyy');
this.CustomerVM.customer.CustomerDob = formatedyear;
然后从 '@angular/common' 导入 { DatePipe } ;在你的组件中
使用 ngValue
正如我在他们的文档中看到的那样,如果你想使用 Angular
datepicker
,你需要:
从输入中删除
type="date"
HTML5 的格式为
yyyy-MM-dd
,而 Angular 的格式为 dd-MM-yyyy
。