2013-08-09 4 views
0

У меня есть простая модель, использующая Backbone.Validations plugin.Backbone.validation не работает с сохранением

var LocationModel = Backbone.Model.extend({ 
validation: { 
    location_name: { 
     required : true, 
     msg  : 'A name is required for the location' 
    } 
} // end validation 
}); 

var test = new LocationModel(); 
test.url = 'http://link-goes-here'; 
test.save(); 

Оказывается, что на экономии события, он идет вперед и спас мою пустую модель, даже если атрибут «LOCATION_NAME» требуется?

ответ

1

Я просто сделал кучу испытаний, и единственным способом я мог бы получить его, чтобы постоянно не отправить запрос был также путем создания по умолчанию на модели:

var LocationModel = Backbone.Model.extend({ 
    defaults: { 
     location_name: null 
    }, 
    validation: { 
     location_name: { 
      required: true, 
      msg: 'A name is required for the location' 
     } 
    } // end validation 
}); 

var test = new LocationModel(); 
test.on('validated', function() { 
    console.log(arguments); 
}); 
test.url = '/echo/json'; 

test.save(); 

Вот fiddle. Если вы закомментируете defaults, он сначала отправляет запрос, хотя событие validated говорит, что оно недействительно. И затем пожары validated снова без отправки запроса.