私のアプリはバックボーンを使用しています。ユーザーが変更できるモデルがあります。このモデルは、変更する前に検証する必要があります。変更されている場合は、関数が呼び出されます。ユーザーが保存をクリックすると、モデルが変更された場合にのみモデルが保存されます。
私の問題は、変更イベントが発生したときにモデルが変更されていないため、保存されないことです。
コードは次のとおりです。http://jsfiddle.net/keepyourweb/jQL8V/
var model = Backbone.Model.extend({
initialize: function() {
},
default: {
'first_name': 'none',
'last_name': 'none'
},
validate: function(attr) {
if (_.isEmpty(attr['first_name'])) return 'Error name required';
}
});
var test = new model,
showError = function(model, error) {
alert(error);
},
changed = function() {
alert('changed!');
};
test.bind('change', changed);
test.set({'first_name': 'test_name', 'last_name': 'test_surname'}, {error: showError});
$('#save').bind('click', function() {
if (test.hasChanged()) alert('Saved!!');
});