angular input输入框中使用filter格式化日期

最近使用了angular日期选择器,不过需要把选中的日期输出到input输入框中,如果按照默认情况,显示的是时间戳形式的时间,不符合要求,需要把格式变成特定格式,但是input上ng-model上又不能直接使用filter,因此需要一种方法把这里显示的内容格式化。

网上寻找解决方案就是写个directive,具体实例代码如下:

JS

 

[javascript] view plain copy
 
  1. angular.module('dateRange',[]).directive('dateFormat', ['$filter',function($filter) {  
  2.     var dateFilter = $filter('date');  
  3.     return {  
  4.         require: 'ngModel',  
  5.         link: function(scope, elm, attrs, ctrl) {  
  6.   
  7.             function formatter(value) {  
  8.                 return dateFilter(value, 'yyyy-MM-dd'); //format  
  9.             }  
  10.   
  11.             function parser() {  
  12.                 return ctrl.$modelValue;  
  13.             }  
  14.   
  15.             ctrl.$formatters.push(formatter);  
  16.             ctrl.$parsers.unshift(parser);  
  17.   
  18.         }  
  19.     };  
  20. }]);  

 

 

HTML

 

[html] view plain copy
 
  1. <input type="text" ng-model="start_date" date-format disabled="disabled">  


显示效果如图,具体的格式化修改代码中的format即可。

 

posted on 2016-11-08 10:13  子墨'  阅读(639)  评论(0编辑  收藏  举报

导航