Я создаю форму с Backbone и хочу проверить ее поля на событии "размытие".
Вступление в мероприятие достаточно простое, но мне интересно, нужно ли обновлять модель на размытие или только при отправке формы?
Обновление модели при размытии
-
model.set({...}, {validate:true});
- Если ваша модель имеет несколько атрибутов, проверка будет выполняться для всех из них, каждый раз
- при создании нового элемента состояние модели не так важно, потому что оно, вероятно, не используется совместно с другими модулями
- при редактировании элемента модель находится в этом странном устаревшем/обновленном состоянии, в зависимости от того, где человек находится в форме. Что делать, если модель разделяется между несколькими модулями?
Обновление модели при отправке
- не может использовать
model.set()
для проверки, поэтому модели необходимо выставить некоторые методы проверки (например,MyModel.validZip()
) - on submit, хотя все поля были проверены, необходимо вызвать функцию
set()
для обновления модели, что приведет к повторной проверке проверки (не совсем уверен, что это плохо).
Я прочитал пару релевантных проблем github Backbone (1, 2, 3), и разработчики Backbone, похоже, рисуют линию между моделью и формой.
Кроме того, плагин Backbone.Form, похоже, сохраняет внутреннее свойство fields
для отслеживания полей формы и когда это делается, вызовите .commit()
для обновления модели.
Таким образом, кажется, что обновление модели на submit - лучший подход. Это тот опыт, который у вас был?