angularjs自定义指令不能过滤(格式化)input框ng-model的值

这里是输入框:
<input class="weui_input" type="time" ng-model="callDate" date-format>

这里是指令代码:
contr.directive('dateFormat', ['$filter',function($filter) {
  return {
    require: 'ngModel',
    link: function(scope, elm, attrs, ctrl) {
      ctrl.$formatters.unshift(function formatter(value) {
        return $filter('date')(value, 'HH:mm');
      });
      ctrl.$parsers.push(function parser() {
        return ctrl.$modelValue;
      });
    }
  };
}])

添加上指令之后还是不能达到'HH:mm'这种格式。
阅读 3.7k
1 个回答

我猜,你是想实现这个功能吧
$modelValue初始是没有值的,后面一直在这个上面叠加,导致parse后一直没有值

app.directive('dateFormat', ['$filter', function($filter) {
  return {
    require: 'ngModel',
    link: function(scope, elm, attrs, ctrl) {
      ctrl.$parsers.push(function parser() {
        return $filter('date')(ctrl.$viewValue, 'HH:mm');
      });
    }
  };
}])
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题