Angularjs:预计2015-11-21T02:00:00.000Z`为约会对象

时间:2015-11-10 13:26:17

标签: angularjs node.js date

我正在开发一个包含任务和项目的应用程序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();
  });
};

有人帮助我!

1 个答案:

答案 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;
    }
  }