我发现了一些奇怪的行为:默认情况下,角度修剪模型值。快速的谷歌搜索并没有帮助我解决这个问题。我找到了ng-no-trim
指令提案,ng-trim
等等。但没有任何作用。
我在下面提供了一个代表此问题的小片段。
function Ctrl($scope) {
$scope.text='';
$scope.$watch('text', function (newValue) {
console.log(newValue);
});
}
您也可以尝试使用此代码段here。
我添加了一个与模型text
同步的textarea。但是,当添加新的尾随空格或将线条拆分为新的空格时,它不会对观察做出反应。
如何关闭此行为?感谢。
答案 0 :(得分:94)
有关指令是1.1.1中的新指令;你可以看到它使用JS Bin snippet。
<textarea cols="30" rows="10" ng-model="text" ng-trim="false"></textarea>
答案 1 :(得分:3)
角度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']);
答案 2 :(得分:3)
您可以使用ng-trim = true / false启用/禁用修剪选项。 参考https://docs.angularjs.org/api/ng/input/input%5Btext%5D