当我们使用ng-model 绑定日期格式的数据的时候,会出现
Error: error:datefmt
Model is not a date object
之类的错误,这是因为在angular
中故意将input type=date
类型的ng-model
限制为Date
类型
解决办法有2个:
1、将ng-model
的值转换为Date
类型
$scope.date = new Date("2014-12-24");
2、设置NgModelController
的 $formatters
自动进行转换
angular.module('app')
.directive('formatDate', function(){
return {
require: 'ngModel',
link: function(scope, elem, attr, ngModelCtrl) {
ngModelCtrl.$formatters.push(function(modelValue){
if(modelValue) {
return new Date(modelValue);
}
});
ngModelCtrl.$parsers.push(function(value){
if(value) {
return $filter('date')(value, 'yyyy-MM-dd');
}
});
}
};
});