Проверка SimpleForm и Angular

0

Мы используем простую форму в нашем проекте, и теперь я просто создал форму, которая загружается как угловой шаблон. Я также хотел бы обработать валидацию с использованием угловых, но принимать ошибки из ответа. Знаете ли вы, что готовы пойти на угловые директивы для обработки ошибок проверки простой формы?

Теги:
validation
simple-form
ruby-on-rails-4

1 ответ

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

Вот стратегия проверки формы для угловых форм:

  1. ng-minlength: укажите минимальную длину вводимого текста

  2. ng-maxlength: укажите максимальную длину вводимого текста

  3. ng-pattern: указать регулярное выражение js для проверки ввода текста
  4. если у вас есть api и вы хотите получить уникальное значение в поле, чем настраивать этот фрагмент кода

var app = angular.module('validationExample', []);

app.directive('ensureUnique', ['$http', function($http) {
  return {
    require: 'ngModel',
    link: function(scope, ele, attrs, c) {
      scope.$watch(attrs.ngModel, function() {
        $http({
          method: 'POST',
          url: '/api/check/' + attrs.ensureUnique,
          data: {'field': attrs.ensureUnique}
        }).success(function(data, status, headers, cfg) {
          c.$setValidity('unique', data.isUnique);
        }).error(function(data, status, headers, cfg) {
          c.$setValidity('unique', false);
        });
      });
    }
  }
}]);
var app = angular.module('validationExample', []);

app.directive('ensureUnique', ['$http', function($http) {
  return {
    require: 'ngModel',
    link: function(scope, ele, attrs, c) {
      scope.$watch(attrs.ngModel, function() {
        $http({
          method: 'POST',
          url: '/api/check/' + attrs.ensureUnique,
          data: {'field': attrs.ensureUnique}
        }).success(function(data, status, headers, cfg) {
          c.$setValidity('unique', data.isUnique);
        }).error(function(data, status, headers, cfg) {
          c.$setValidity('unique', false);
        });
      });
    }
  }
}]);

Таким образом вы можете получить доступ к полям формы

formName.inputFieldName.property

Вы можете проверить, затронута ли форма пользователем или нет

formName.inputFieldName.$pristine;

Вы можете проверить, затронута ли форма пользователем пользователем, или нет напротив $ нетронутой

formName.inputFieldName.$dirty

Вы можете проверить, действительна ли форма или нет.

formName.inputFieldName.$valid

Его противоположность $ valid

formName.inputFieldName.$invalid

вы также можете форматировать форму, используя эти имена классов

.ng-pristine {}
.ng-dirty {}
.ng-valid {}
.ng-invalid {}

Ещё вопросы

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