AngularJS: Изменить атрибут директивы

0

У меня есть настраиваемая директива, которая выполняет проверку, основанную на значении атрибута директивы.

например: <input type="text" ng-my-validate="onlyletters"/>

Я хочу, чтобы изменить onlyletters значение onlynumbers на лету и хотите директивы изменить его поведение проверки из - за этого.

Как я могу это достичь?

  • 0
    Почему не pattern HTML5 или pattern AngularJS ng-pattern ?
  • 0
    Onlyletters это просто пример. Мои настоящие правила проверки - это бразильские номера документов.
Показать ещё 1 комментарий
Теги:
angularjs-directive

1 ответ

2
Лучший ответ

Вы должны использовать атрибутные $observers.

UPDATE: @MatthewGreen - это правильно. Я упустил из виду тот факт, что вы не используете интерполированное значение. В этом случае рассмотрим использование $watcher с простым атрибутом jQuery:

angular.module('mod', [])
  .directive('ngMyValidate', function() {
    return {
      link: function(scope, elm, attr) {
        scope.$watch(function() {
          return elm.attr('ng-my-validate');
        }, function(value) {
          console.log('attribute changed:', value);
        });
      }
    };
 });

Спасибо @MatthewGreen!

  • 1
    Атрибут, похоже, не использует интерполяцию, поэтому я не уверен, как это им поможет.
  • 0
    Хороший улов @ MatthewGreen. Обновил мой ответ.

Ещё вопросы

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