如何禁用在AngularJSinput的修剪?

我发现了一些奇怪的行为:angular度修剪模型默认值。 快速search并不能帮助我解决这个问题。 我发现ng-no-trim指令提议, ng-trim等等。 但没有任何工作。

我提供了一个代表下面这个问题的小片段。

 function Ctrl($scope) { $scope.text=''; $scope.$watch('text', function (newValue) { console.log(newValue); }); } 

你也可以在这里试试这个片段。

我添加了一个与模型text同步的textarea。 但是,当添加新的尾部空格或将行分隔到新的空格时,它不会反应。

我能做些什么来closures这种行为? 谢谢。

有关的指令在1.1.1中是新的; 你可以看到它使用JS Bin片段工作 。

 <textarea cols="30" rows="10" ng-model="text" ng-trim="false"></textarea> 

回退angular1.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/

您可以使用ng-trim = true / false来启用/禁用修剪选项。 Ref https://docs.angularjs.org/api/ng/input/input%5Btext%5D