Ограничить длину с помощью директивы

0

Я хотел добавить настраиваемую директиву как атрибут, который не позволит пользователю вводить текст в placeholder более определенной длины

   <ui-select-match placeholder="Add one..." maxlength></ui-select-match>

Новая директива может быть как "maxlength", которая ограничивает длину текста

Теги:
attributes
angularjs-directive
directive
maxlength

1 ответ

1
Лучший ответ
<textarea my-maxlength="15" ng-model="result"></textarea>

app.directive('myMaxlength', function() {
  return {
    require: 'ngModel',
    link: function (scope, element, attrs, ngModelCtrl) {
      var maxlength = Number(attrs.myMaxlength);
      function fromUser(text) {
          if (text.length > maxlength) {
            var transformedInput = text.substring(0, maxlength);
            ngModelCtrl.$setViewValue(transformedInput);
            ngModelCtrl.$render();
            return transformedInput;
          } 
          return text;
      }
      ngModelCtrl.$parsers.push(fromUser);
    }
  }; 
});
  • 0
    Спасибо ! , Но здесь мы можем ввести более 15 символов, и позже мы берем из него подстроку на основе указанной длины. Но это способ убедиться, что пользователь не может ввести более 15 символов (в данном случае). Моя цель - убедиться, что пользователь не должен вводить больше указанной длины

Ещё вопросы

Сообщество Overcoder
Наверх
Меню