1
我有一个视图列出了可以通过单击行末尾的“编辑”进行编辑的一组记录。记录在“显示”模式下正确显示,但在转换到编辑模式时,未填充日期字段。在呈现页面时,我在控制台中获取每条记录的下面的错误信息。AngularJS输入控件的日期格式错误
Error: [ngModel:datefmt] Expected
2014-12-28T00:00:00
to be a date
我试着创建一个指令来转换日期,但这似乎并没有工作。
指令:
app.directive('jsonDate', function ($filter) {
return {
restrict: 'A',
require: 'ngModel',
link: function (scope, element, attrs, ngModel) {
//format text going to user (model to view)
ngModel.$formatters.push(function (value) {
var date = $filter('date')(value, ['yyyy-MM-dd']);
return date;
});
//format text from the user (view to model)
ngModel.$parsers.push(function (value) {
var date = new Date(value, 'dd/MM/yyyy');
return date;
});
}
};
})
的视图:
<td>
<p data-ng-hide="competition.editMode">{{ competition.competitionDate | date: 'dd/MM/yyyy' }}</p>
<input data-ng-show="competition.editMode" type="date" data-ng-model="competition.competitionDate" json-date />
</td>
如果我输出的值日期到控制台它报告它作为是无效的日期。我该如何解决这个问题?
您使用Firefox浏览器吗? – Sudarshan
请参阅日期:dd/MM/yyyy您正在通过此格式,但html-5日期预计格式为2014-12-28所以请尝试yyyy-MM-dd – Sudarshan
这是在Chrome中,我已将所有日期格式更改为yyyy-MM-dd仍然保持不变。看来只有ngModel。$ formatters被调用,而不是第二部分ngModel。$ parsers? – Moonie