美文网首页Angular.js专场Angular开发指南
Angular出现error:datefmt的解决办法

Angular出现error:datefmt的解决办法

作者: 格吾刚哥 | 来源:发表于2017-09-11 15:10 被阅读14次

    当我们使用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');
            }
          });
        }
      };
    });
    

    相关文章

      网友评论

        本文标题:Angular出现error:datefmt的解决办法

        本文链接:https://www.haomeiwen.com/subject/imkfsxtx.html