Javascript 主干模型验证问题

Javascript 主干模型验证问题,javascript,validation,backbone.js,Javascript,Validation,Backbone.js,我计划用于模型/表单验证。但模型继续保存,而表单无效。怎么了 _.extend(Backbone.Model.prototype, Backbone.Validation.mixin); M=Backbone.Model.extend({ validation:{ name:{ required:true } }, url:'foo' }) m=new M(); m.validate(); //retu

我计划用于模型/表单验证。但模型继续保存,而表单无效。怎么了

_.extend(Backbone.Model.prototype, Backbone.Validation.mixin);

M=Backbone.Model.extend({
    validation:{
        name:{
            required:true
        }
    },
    url:'foo'
})

m=new M();
m.validate();      //return correct validation error.
m.validationError; // this is null while it should be filled by above error
m.save();          // it communicate with server while the model is not valid

尚未设置属性名称。请尝试以下代码

M = Backbone.Model.extend({
    defaults: {
        name: null
    },
    validation:{
        name:{
            required:true
        }
    },
    url:'foo'
});

谢谢我希望它在未来的版本中不使用默认值。但它仍然会保留
validationError
null;m、 save();m、 unset(名称)然后执行
m.save()
它将再次尝试保存无效的模型。Ya,因为您再次删除了该属性。因此,它试图在不存在的属性上进行验证。基本上,验证器首先需要知道模型的模式。在插件示例中,很多元素都没有设置默认值,比如对signup方法和serializegist进行检查。当前
var data=this.$el.serializeObject();此.model.set(数据)将属性序列化到模型中。因此,属性存在于模型中,而不必首先设置默认值。这是一种方法,但我更喜欢设置模式。因此,我对我的模型和它应该是什么样子有了看法。