Asp.net mvc 输入控件的AngularJS日期格式错误

Asp.net mvc 输入控件的AngularJS日期格式错误,asp.net-mvc,angularjs,date,Asp.net Mvc,Angularjs,Date,我有一个视图,其中列出了一组记录,可以通过单击行末尾的“编辑”进行编辑。记录在“显示”模式下正确显示,但在转换为编辑模式时,日期字段未填充。在呈现页面时,控制台中的每条记录都会出现以下错误 错误:[ngModel:datefmt]预计2014-12-28T00:00:00为日期 我曾尝试创建一个指令来转换日期,但这似乎不起作用 指令: app.directive('jsonDate', function ($filter) { return { restrict:

我有一个视图,其中列出了一组记录,可以通过单击行末尾的“编辑”进行编辑。记录在“显示”模式下正确显示,但在转换为编辑模式时,日期字段未填充。在呈现页面时,控制台中的每条记录都会出现以下错误

错误:[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>

{{competition.competitionDate}日期:'dd/MM/yyyy'}


如果我将值date输出到console,它会将其报告为无效日期。如何解决这个问题?

这意味着ngModel需要一个javascript日期对象。在行加载代码中,将对象的日期(字符串)成员转换为日期对象。

是否使用Firefox浏览器?请参见日期:dd/MM/yyyy中的内容。您正在传递此格式,但html-5日期格式应为2014-12-28,因此请尝试yyyyy-MM-dd。这是在Chrome中,我已将所有日期格式更改为yyy-MM-dd,并且仍然得到相同的格式。似乎只调用了ngModel.$formatters,而不是第二部分ngModel.$parsers?您能提供示例JSFIDLE或PLUNK吗?试试这个