我想将输入绑定到页面的其他部分,并将用户输入的所有空格替换为其他一些字符,例如星号.
<div ng-app> <div ng-controller="MyCtrl"> Output: "{{input}}"<br /> <input type="text" ng-model="rawInput" ng-change="onInputChanged()" /> </div> </div>
相关的控制器也非常简单:
var myApp = angular.module('myApp',[]); function MyCtrl($scope) { $scope.input = ''; $scope.rawInput = ''; $scope.onInputChanged = function() { $scope.input= $scope.rawInput .replace(/\s/g,'*'); }; };
结果不如预期.在文本框中输入“Hello”时,结果输出为“Hello”,并删除尾随空格.对于输入结尾处的多个空格也是如此.
在输入中添加非空格字符时,如’Hello W’,正确地替换并显示空格:“Hello * World”.
所以这是我的问题:如何绑定文本框的值,保留用户输入的所有空格?
我创建了JSFiddle来证明这个问题.
解决方法
在输入中设置ng-trim =“false”.
If set to false Angular will not automatically trim the input.