Главная

Webmacter V.2 Всё для вебмастера » Уроки по JS » Backbone.js 5 – валидация моделей

Backbone.js 5 – валидация моделей

Backbone.js 5 – валидация моделей


В этой части мы возьмемся за валидацию.




Итак начнем с того, что мы имеем. А имеем мы следующую Backbone модель.
var Person = Backbone.Model.extend({
	defaults: {
		name: 'Иван Петров',
		age: 40,
		job: 'слесарь'
	},
 
	work: function() {
		return this.get('name') + ' is working.';
	}
});


Начнем с того, что будем проверять модель, на возможность задавать отрицательный возраст для нашей персоны.

Для этого создадим новый экземпляр модели Person:
var person = new Person({name: 'Николай', job: 'Веб-разработчик'});

Далее, вернемся к модели и напишем встроенный в Backbone.Model метод validate – отвечающий за валидацию атрибутов модели. Методу передается параметр attrs, это объект всех атрибутов модели. В методе поставим условие на проверку возраста. Если attrs.age будет возвращать любое falsy значение, то валидация не пройдет
var Person = Backbone.Model.extend({
	defaults: {
		name: 'Иван Петров',
		age: 40,
		job: 'слесарь'
	},
 
 
	validate: function( attrs ) {
		console.log(attrs);
 
		if ( attrs.age <= 0 ) {
			return 'Возраст должен быть положительным!';
		}
 
	},
 
	work: function() {
		return this.get('name') + ' is working.';
	}
});


Чтобы вывести сообщение, необходимо поставить прослушку на ошибки. То есть повесить обработчик, на событие ‘error’. И выведем ошибку в консоль
person.on('error', function(model, error){
   console.log(error);
};

Попробуйте задать отрицательный возраст и убедитесь, в том что валидация работает

Напишем ещё одну проверку, теперь уже на имя. Оно должно быть задано.
var Person = Backbone.Model.extend({
	defaults: {
		name: 'Иван Петров',
		age: 40,
		job: 'слесарь'
	},
 
 
	validate: function( attrs ) {
		console.log(attrs);
 
		if ( attrs.age <= 0 ) {
			return 'Возраст должен быть положительным!';
		}
 
		if ( ! attrs.name ) {
			return 'Чувак, ты же не думаешь, что у персоны не может быть имени?';
		}
 
	},
 
	work: function() {
		return this.get('name') + ' is working.';
	}
});

Вот так просто мы написали валидацию, для основных атрибутов нашей модели. Оставайтесь с нами! Впереди еще много интересного. Всем спасибо и до новых встреч!

Источник:loftblog
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо зайти на сайт под своим именем.

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.