У меня есть проблема, когда при запуске model.set ({field: 'value'}) проверки этой модели будут выполняться так, как если бы явно заданное поле было единственным параметром, заданным для модели.
Что я имею в виду, если у меня есть проверка, требующая наличия полей 'first_field' и 'second_field', запуск model.set ({third_field: 'value'}) не пройдет проверку, даже если first_field и second_field имеют уже был установлен. Из консоли first_field и second_field доступны как до, так и после запуска проверки ... но console.log имеет поле (attrs), заполненное только третьим полем внутри функции проверки.
Из того, что я прочитал в официальной документации, мой шаблон для метода проверки в порядке ... но что-то явно не так. Любые идеи приветствуются, код ниже:
class MyModel extends Backbone.Model
# ...
validate: (attrs) ->
errors = []
valid = true
console.log attrs
if (!attrs.first_field)
errors.push('You must add a first field')
if (errors.length > 0)
return errors
# ...
И из консоли, если я запустил
m = window.router.my_models.test_model # Contains attributes 'first_field' and 'second_field'
m.set({new_field: 'test value'})
Он вернет «ложь», которая приходит из проверки. Файл console.log для attrs внутри метода validate подтверждает, что единственное имеющееся значение attrs - это набор Explicity 'new_field'