我正在开发一个包含任务和项目的应用程序MEAN。但是当我编辑任务的截止日期时,我收到此错误:
Error: [ngModel:datefmt] Expected `2015-11-21T02:00:00.000Z` to be a date
我已经研究了很多关于它的问题,我无法解决我的问题,请帮助我!
我在交货日期的html输入是:
<input type="date" data-ng-model="task.deadline" id="deadline" required>
这是我的客户端控制器(角度):
// Find a task by the id
$scope.findOne = function() {
$scope.task = Tasks.get({
taskId: $routeParams.taskId
});
};
这是我的服务器端控制器(节点):
// Find a specific task using the id
exports.taskByID = function(req, res, next, id) {
Task.findById(id).populate('creator', 'firstName lastName fullName').exec(function(err, task) {
if (err) return next(err);
if (!task) return next(new Error('Não foi possível carregar a tarefa ' + id));
req.task = task;
task.deadline = new Date(task.deadline);
next();
});
};
有人帮助我!
答案 0 :(得分:0)
假设Tasks
是$resource
对象,您需要添加transformResponse
拦截器,如:
var Tasks = $resource('/service/server/method', {}, {
get: {
method: 'GET',
isArray: false,
transformResponse: function(data, header) {
var obj = angular.fromJson(data);
obj.deadline = new Date(data.deadline)
// you will want to use moment.js to handle your dates on the clientside if you expect any kind of timezone accuracy.
return obj;
}
}