Описаны основные шаги по настройке валидации

Описание

Клиентская валидация настраивается в приложении на базе аддона Ember Validations (в документации к данному аддону указано больше возможностей по заданию правил).

Валидация задаётся на уровне модели (остальные манипуляции с настройкой компонента зашиты в технологию Flexberry ASP.NET Ember):

var Model = BaseModel.extend({
  номерПроекта: DS.attr('string'),
  краткоеСодержание: DS.attr('string'),
  визирование: DS.attr('boolean', {defaultValue: false}),
  примечание: DS.attr('string'),

  // Validation rules.
  validations: {
      номерПроекта: { presence: true },
      краткоеСодержание: { presence: true, length: { maximum: 255 } },
      визирование: { presence: true },
      примечание: { length: { maximum: 255 } },
  }
});

Для отображения валидации на форме редактирования в соответствующем шаблоне необходимо написать примерно следующее (стили и расположение элементов может отличаться):

<div class="ui grid `if model.errors.номерПроекта 'error' ''`">
	<div class="ui two wide column right aligned middle aligned content">
		<label>Номер проекта</label>
	</div>
	<div class="ten wide column">
		<span class="flexberry-validation-error-message">`model.errors.номерПроекта`</span>
		`input type="text" placeholder="(no value)" value=model.номерПроекта`
	</div>
</div>

Типы валидаторов

Существуют “стандартные” валидаторы, предоставляемые аддоном Ember Validations, а также кастомные валидаторы, предоставляемые вместе с аддоном ember-flexberry.

“Стандартные” валидаторы

Аддоном Ember Validations предоставляются следующие валидаторы:

  • absence - проверка того, что валидируемое свойство должно быть пустым. Подробнее.
  • acceptance - проверка того, что в валидируемое свойство введено допустимое значение (задается в валидаторе). Подробнее.
  • confirmation - проверка того, что значение валидируемого свойства совпадает со значением свойства propertyConfirmation, где property-имя валидируемого свойства. Подробнее.
  • exclusion - проверка того, что значение валидируемого свойства не входит в перечень недопустимых значений. Подробнее.
  • format - проверка того, что значение валидируемого свойства соответствует заданному регулярному выражению. Подробнее.
  • inclusion - проверка того, что значение валидируемого свойства входит в перечень допустимых значений. Подробнее.
  • length - проверка того, что значение валидируемого свойства имеет заданную длину. Подробнее.
  • numericality - проверка того, что значение валидируемого свойства является числовым. Подробнее.
  • presence - проверка того, что валидируемое свойство должно быть не пустым. Подробнее.

Кастомные валидаторы

В рамках аддона ember-flexberry реализованы следующие валидаторы:

  • datetime - проверка корректности ввода даты/даты-времени. Подробнее.

Условные валидаторы

Все валидаторы могут работать также в режиме условной валидации - их срабатывание будет зависеть либо от дополнительной логической функции, либо от логического свойства объекта. Подробнее.

Разработка кастомных валидаторов

Прикладные разработчики также могут создавать свои кастомные валидаторы, если имеющихся валидаторов не достаточно для реализации прикладной логики. Существует 2 способа реализовать кастомные валидаторы:

  • Реализовать отдельный валидатор, который будет возможно переиспользовать для моделей разных сущностей
  • Реализовать inline-валидатор, который будет проверять корректность данных для модели одной конкретной сущности

Подробнее о процессе создания кастомных валидаторов можно посмотреть здесь.

Кроме этого, можно посмотреть исходный код валидаторов в репозитории аддона Ember Validations на GitHub.