У меня есть директива, которая проверяет ввод текста с помощью регулярного выражения. Я хочу запретить пользователю вводить пробелы. Директива прекрасно работает с пробелами внутри текста, но когда пользователь вводит конечные или начальные пробелы, проверка не запускается. Я знаю, что угловой ввод автоматически обрезает ввод текста, но я не могу использовать директиву ng-trim = "false", потому что моя версия angularjs - 1.0.6. Есть ли способ это исправить?
Я пробовал предложение из Как отключить обрезку входных данных в AngularJS? для angular 1.0.x, и это частично работает - проверка запускается, когда пользователь вставляет значение, которое содержит конечные пробелы, с помощью "ctrl + v "или мышь, но ввод с клавиатуры все еще не вызывает проверки.
пользовательская директива ngTrim, которая частично работает:
app.directive('ngTrim', function() {
return {
require: 'ngModel',
priority: 300,
link: function(scope, iElem, iAttrs, ngModel) {
if (iAttrs.ngTrim === 'false') {
ngModel.$parsers.unshift(function() {
return iElem.val();
});
}
}
}
});