Проверка магистрали на существующем учебном пособии

Я сделал следующий учебник Томаса Дэвиса, и я решил добавить некоторую проверку в поле возраста. Я попытался изменить модель следующим образом, но не успел:

var User = Backbone.Model.extend({
 validate: function(attr, error) {
 if(attr.age < 18) {
 console.log(error);
 return error;
 }
 },
 checkValidation: function(){
 if (validate) {
 console.log('validation successful');
 } else {
 urlRoot: '/users'
 }
 }
});

Полный код здесь

Учебник: https://www.youtube.com/watch?v=FZSjvWtUxYk

1 ответ

Ваш метод проверки будет вызываться автоматически, когда вы вызываете set или сохраняете модель и предотвратите продолжение сохранения метода сохранения, если вы вернете что-либо, как и вы. Если вы хотите проверить валидацию вне set/save, вы можете просто вызвать ' this.isValid() '.

Существуют две проблемы с вашим методом checkValidation:

checkValidation: function(){
 if (validate) { //where is this validate variable coming from?
 console.log('validation successful');
 } else {
 urlRoot: '/users' //not doing anything, don't use : syntax outside of an object
 }
 }

Если вы хотите использовать метод, попробуйте следующее:

checkValidation: function(){
 if (this.isValid()) {
 console.log('validation successful');
 } else {
 this.urlRoot = '/users' //must specify this, use =
 }
 }

В любом случае я прочитал бы метод validate: http://backbonejs.org/#Model-validate или посмотрим на внутренности того, как он работает: http://backbonejs.org/docs/backbone.html#section- 68

licensed under cc by-sa 3.0 with attribution.