我有一个视图,其中列出了一组可以通过点击“编辑”来编辑的记录。在行的末尾。记录显示在'显示'模式,但转换为编辑模式时,不会填充日期字段。在渲染页面时,我在控制台中为每条记录收到以下错误。
错误:[ngModel:datefmt]预期
2014-12-28T00:00:00
为日期
我尝试过创建一个转换日期的指令,但这似乎不起作用。
指令:
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>
如果我将值日期输出到控制台,则会将其报告为无效日期。我该如何解决这个问题?
答案 0 :(得分:0)
这意味着ngModel期待一个javascript Date对象。在行加载代码中,将对象的日期(字符串)成员转换为Date对象。