Как я могу заставить 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 не будет автоматически подрезать вход.