Часть validators
вашего TextInput
вида определенно больше подходит для модели.Модели в Backbone самопроверяются, так что вы их много покупаете.В вашем сценарии keydown
модель будет иметь постоянное поле value
, в котором хранится текущее значение input
.Вам не нужно явно проверять новые значения в keydown
, вы можете просто попытаться set
модель:
Если модель имеет метод проверки, она будет проверенадо того, как атрибуты установлены, никаких изменений не произойдет, если проверка не пройдена, и set вернет false
.- Backbone docs
Так что просто убедитесь, что вы правильно определили свой метод validate
.
Будет ли это иметь смысл, если не будет проверки?
Это интересный вопрос, так как ваша модель / представление не очень типична.Я имею в виду, что создается впечатление, что вы создаете поля формы с целью создания полей формы. Если эти поля привязаны к фактическим моделям в вашем приложении (т. Е. К вещам, которые хранятся в вашем слое постоянства), то эти модели должны быть вашими опорными моделями. В противном случае я предполагаючто вы на самом деле хотите модель, которая означает "это поле ввода".Но я бы сказал нет, возможно, это не имело бы большого смысла, если бы вы не заботились о проверке - потому что в этом случае вы просто реагируете на пользовательские события и делаете все, что хотите, независимо от того, что представляют собой фактические данные.
На ваш второй вопрос: я не думаю, что вам стоит много вкладывать предложения в их собственную модель.Вы не собираетесь устанавливать их по отдельности, вы просто извлекаете их на основе значения другой модели.
В заключение: именно так работают коллекции, но, опять же, я не думаю, чтоэто бы сильно тебя купило.Однако, просто чтобы проиллюстрировать это, это будет выглядеть примерно так: suggestions
будет набором Suggestion
моделей;collectionView
будет представлением, которое показывает models
из suggestions
, который каждый будет suggestionView
, который представляет одно предложение.Опять же, это было бы полным излишним в этой ситуации ИМО.Единственная причина сделать это будет, если вы действительно заботитесь о каждом отдельном предложении, то есть, если вы хотите ответить на события на нем, или по какой-то причине сохранить его данные.Я не думаю, что вы, тем не менее.