Backbone.validation无法保存

时间:2013-08-09 20:17:25

标签: backbone.js backbone.validation.js

我有一个使用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”,它也会继续保存我的空模型?

1 个答案:

答案 0 :(得分: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();

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