如何强制angular.js接受绑定中的尾随空格?

时间:2014-05-13 14:01:41

标签: angularjs binding angularjs-ng-change non-printing-characters

我想将输入绑定到页面的其他部分,并将用户输入的所有空格替换为其他字符,例如星号。

我的(简化)HTML代码如下所示:

<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来证明这个问题。

1 个答案:

答案 0 :(得分:7)

在输入中设置ng-trim="false"

来自angular documentation

  

如果设置为false,Angular将不会自动修剪输入。