Всем привет!
Есть модель
var MyModel = Backbone.Model.extend({
initialize: function() {
this.on("invalid", function(model, error){
console.log(error);
});
},
defaults: {
'title': 'unnamed',
'description': '',
'date_begin': '',
'date_end': '',
},
validate: function(attrs) {
if (!attrs.date_begin) {
console.log("D1");
var d = new Date();
var dd = d.getDate();
var mm = d.getMonth() + 1;
var yyyy = d.getFullYear();
this.set({'date_begin': dd + '.' + mm + '.' + yyyy});
}
if (!attrs.date_end) {
console.log("D2");
var d = new Date();
var dd = d.getDate();
var mm = d.getMonth() + 1;
var yyyy = d.getFullYear();
this.set({'date_end': dd + '.' + mm + '.' + yyyy});
}
},
...
});
Почему не получается установить значение атрибутов из функции valdate. Тут, наверное, возникает кака-то путаница, так как метод set, на сколько мне известно, тоже выполняет метод validate. Получается какая-то рекурсия. Как кто валидирует модели? Устанавливаете ли вы валидные значения для атрибутов модели из validate()?