1

私のアプリはバックボーンを使用しています。ユーザーが変更できるモデルがあります。このモデルは、変更する前に検証する必要があります。変更されている場合は、関数が呼び出されます。ユーザーが保存をクリックすると、モデルが変更された場合にのみモデルが保存されます。

私の問題は、変更イベントが発生したときにモデルが変更されていないため、保存されないことです。

コードは次のとおりです。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!!');  
});
4

0 に答える 0