Просто посмотрите на previousAttributes()
Затем вы можете сравнить:
If(this.get(attr) > this.previousAttributes()[attr]){
console.log('bigger');
} else {
console.log('smaller');
}
Если вы используете это в своем обработчике событий change
, все готово.Нет необходимости для пользовательского триггера или тонны кода.
EDIT
Это из моего проекта Backbone.Validators и способа получения списка всех атрибутов, которые были изменены на этапе проверки:
var get_changed_attributes = function(previous, current){
var changedAttributes = [];
_(current).each(function(val, key){
if(!_(previous).has(key)){
changedAttributes.push(key);
} else if (!_.isEqual(val, previous[key])){
changedAttributes.push(key);
}
});
return changedAttributes;
};
Для этого требуется Underscore 1.3.1, поскольку он использует _.has
.Если вы не можете обновить, это легко заменить.В вашем случае вы бы проходили this.previousAttributes()
и this.attributes