Подтвердить что ты не робот

Какая библиотека проверки корректно сочетается с Backbone.js?

Поскольку мы используем Backbone, мы не отправляем формы на сервер каждый раз, когда мы открываем пользовательский интерфейс для ввода пользователем некоторых данных. Но некоторые из популярных фреймворков проверки предполагают, что у вас есть <form>, чтобы идти с вашими различными входами (а мы этого не делаем) и что вы собираетесь представить эту форму (я не).

Какая структура валидации хорошо сочетается с чем-то и позволяет мне запускать, когда она проверяет и не волнует, находятся ли мои элементы управления в форме или нет?

4b9b3361

Ответ 1

Интересный вопрос. Мне не повезло найти 100% -ное решение, поэтому не рассматривайте это как прямой ответ на свой вопрос, но это может помочь, как это потенциально может быть лучше всего рассмотрено ИМО.

Для меня наилучшим подходом были бы правила проверки достоверности, полностью определенные в Json, с декларативной валидацией на стороне клиента и на стороне сервера - "строителем", которая построила бы правила из определения. Это позволит выполнить проверку DRY (сервер/клиент).

JSON-схема довольно ограничена для этого.

Я считаю, что Kansojs.org имеет довольно хорошее определение JSON для проверки, но мне еще предстоит встретить разработчиков, которые его реализуют.

Я поднял вопрос об этом некоторое время назад, но я боюсь, что мой эссеподобный вопрос не вызвал никакого ответа:) Сухая проверка входных данных пользователя (clientide, serverside) с использованием JSON-схемы

Надеюсь, что это поможет некоторым, Герт-Ян

Ответ 2

Недавно мы познакомились с этой библиотекой: https://github.com/thedersen/backbone.validation

По крайней мере, на бумаге это выглядит великолепно. Он не требует форм, которые, похоже, вполне счастливы для подтверждения на уровне модели. Он также имеет некоторую простую возможность обновлять элементы в представлении, чтобы отражать ошибки в проверке, если есть простое сопоставление между элементом и атрибутом на модели.

Как только у нас была возможность полностью его изучить, я вернусь и обновляю это с дополнительной информацией.

Ответ 3

Я искал кросс-платформенную (nodejs, browser) проверку для базовой сети, которая поддерживает асинхронные тесты, пользовательские тесты, пользовательские сообщения об ошибках языка, тестовые отношения и т.д.

Я не нашел для этого автономную библиотеку, но нашел решение здесь: https://github.com/powmedia/backbone-forms, он генерирует всю форму вместо просто проверить его и пользовательские сообщения об ошибках тоже...

Создание форм с помощью валидатора - огромная идея, кстати. Я думаю, что Backbone-формы недостаточно гибки и для меня слишком большие. Я хочу использовать Backbone.UI, и у него есть настраиваемое связующее вещество. Я не знаю, как настроить Backbone-формы, чтобы использовать связывание данных Backbone.UI.

Я создал свою собственную lib: https://github.com/inf3rno/bb-validation, она содержала только проверку в версии 1.0, теперь я реорганизовал и переписал части кода, и добавил генератор формы к версии 2.0. Генератор этой формы использует поля http://perka.github.io/backbone-ui, и моя цель - разработать нечто похожее на базовые формы, но состоит из небольших библиотек. Я думаю, что это способ написать многоразовый код javascript...

Ответ 4

Зачем использовать и переопределять исходную точку входа для проверки в Backbone? Вот ссылка на документацию:

http://backbonejs.org/#Model-validate

И из документации:

validatemodel.validate(attributes, options) 

Этот метод остается undefined, и вам рекомендуется переопределить его с помощью любой пользовательской логики проверки, которая может быть выполнена в JavaScript.

По умолчанию сохранять проверки перед установкой любых атрибутов, но вы также можете указать set для проверки новых атрибутов, передав {validate: true} в качестве опции.

Метод validate получает атрибуты модели, а также любые параметры, переданные для установки или сохранения. Если атрибуты действительны, не возвращайте ничего из проверки; если они недействительны, возвратите ошибку по вашему выбору.

Это может быть так же просто, как отображаемое строковое сообщение об ошибке, или полный объект ошибки, который описывает ошибку программно. Если validate возвращает ошибку, сохранение не будет продолжаться, и атрибуты модели не будут изменены на сервере. Неверные проверки инициируют "недействительное" событие и устанавливают свойство validationError в модели со значением, возвращаемым этим методом.

- Также используйте и переопределите две функции:

validationErrormodel.validationError 

Значение, возвращаемое при проверке во время последней неудачной проверки.

isValidmodel.isValid() 

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