Skip to content

angular中如何在input元素上使用filter? #1

Description

@natee

当把一个变量如日期显示在ng-model上时,有时需要对显示的内容进行格式化,但是ng-model上是不支持| filter这样的,因此需要单独写directive来实现。

<input type="text" ng-model="start_date" date-format disabled="disabled">
angular.module('dateRange',[]).directive('dateFormat', ['$filter',function($filter) {  
    var dateFilter = $filter('date');  
    return {  
        require: 'ngModel',  
        link: function(scope, elm, attrs, ctrl) {  

            function formatter(value) {  
                return dateFilter(value, 'yyyy-MM-dd'); //format  
            }  

            function parser() {  
                return ctrl.$modelValue;  
            }  

            ctrl.$formatters.push(formatter);  
            ctrl.$parsers.unshift(parser);  

        }  
    };  
}]);  

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions