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'这种格式。


海绵宝宝撒
浏览 919回答 1
1回答

qq_花开花谢_0

我猜,你是想实现这个功能吧$modelValue初始是没有值的,后面一直在这个上面叠加,导致parse后一直没有值app.directive('dateFormat',&nbsp;['$filter',&nbsp;function($filter)&nbsp;{&nbsp;&nbsp;return&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;require:&nbsp;'ngModel', &nbsp;&nbsp;&nbsp;&nbsp;link:&nbsp;function(scope,&nbsp;elm,&nbsp;attrs,&nbsp;ctrl)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctrl.$parsers.push(function&nbsp;parser()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$filter('date')(ctrl.$viewValue,&nbsp;'HH:mm'); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;}; }])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript