【问题标题】:How can I force angular.js to accept trailing whitespaces in bindings?如何强制 angular.js 接受绑定中的尾随空格?
【发布时间】:2014-07-01 06:08:41
【问题描述】:

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

我的(简化的)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 来演示这个问题。

【问题讨论】:

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


    【解决方案1】:

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

    来自angular documentation

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

    【讨论】:

      猜你喜欢
      • 2019-03-10
      • 2011-04-03
      • 2014-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多