Как я могу заставить angular.js принимать конечные пробелы в привязках?

Я хочу привязать ввод к какой-либо другой части страницы и заменить все пробелы, введенные пользователем, некоторыми другими символами, например, звездочками.

Мой (упрощенный) 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 ответ

Решение

Задавать ng-trim="false" в вашем входе.

Из угловой документации

При значении false Angular не будет автоматически подрезать вход.

Другие вопросы по тегам