How to disable trimming of inputs in AngularJS?

前端 未结 3 1503
面向向阳花
面向向阳花 2020-12-03 00:18

I\'ve found some strange behavior: angular trims model values by default. And quick googling doesn\'t help me to solve this problem. I\'ve found ng-no-trim dire

相关标签:
3条回答
  • 2020-12-03 00:55

    Fallback for angular 1.0.x

    var app = angular.module('app', []);
    
    app.directive('ngTrim', function() {
        return {
            require: 'ngModel',
            priority: 300,
            link: function(scope, iElem, iAttrs, ngModel) {
                if (iAttrs.ngTrim === 'false') {
                    // Be careful here. We override any value comming from the previous
                    // parsers to return the real value in iElem
                    ngModel.$parsers.unshift(function() {
                        return iElem.val();
                    });
                }
            }
        }
    });
    
    angular.bootstrap(document, ['app']);
    

    http://jsfiddle.net/vXCnj/3/

    0 讨论(0)
  • 2020-12-03 01:14

    You can enable/disable trim option by using ng-trim=true/false. Ref https://docs.angularjs.org/api/ng/input/input%5Btext%5D

    0 讨论(0)
  • 2020-12-03 01:15

    The directive in question is new in 1.1.1; you can see it working using JS Bin snippet.

    <textarea cols="30" rows="10" ng-model="text" ng-trim="false"></textarea>
    
    0 讨论(0)
提交回复
热议问题