0

我有一个使用Backbone.Validations plugin.

var LocationModel = Backbone.Model.extend({
validation: {
     location_name: {
         required   : true,
         msg        : 'A name is required for the location'
    }
} // end validation
});

var test = new LocationModel();
test.url = 'http://link-goes-here';
test.save();

似乎在保存事件中,即使需要属性“location_name”,它也会继续保存我的空模型?

4

1 回答 1

1

我只是做了一堆测试,唯一能让它始终不发送请求的方法是在模型上创建默认值:

var LocationModel = Backbone.Model.extend({
    defaults: {
        location_name: null
    },
    validation: {
        location_name: {
            required: true,
            msg: 'A name is required for the location'
        }
    } // end validation
});

var test = new LocationModel();
test.on('validated', function() {
    console.log(arguments);
});
test.url = '/echo/json';

test.save();

这是一个小提琴。如果您注释掉defaults,它最初会发送一个请求,即使validated事件表明它是无效的。然后再次触发validated而不发送请求。

于 2013-08-09T21:54:50.960 回答