1

我正在尝试运行以下代码:

var eligible = Backbone.Model.extend({
        validate : function(attrs,options){
            //alert("ldsafh");
            if(attrs.min < attrs.max) {
                return "not eligible for voting";
            }   
        }

    });

        var age = new eligible({
            advice : "You are "
        });


        age.on("invalid", function(model, error) {
            alert("sfndxgj");
            console.log(model.get('advice') + " " + error);
        });

        age.set({
            min : 18,
            max : 100
        });

为什么这个 age.on 事件不起作用?请在这里帮我....

4

2 回答 2

3

作为选项传递{validate:true}

默认情况下 validate 在保存之前调用,但如果 {validate:true} 被传递也可以在设置之前调用

http://backbonejs.org/#Model-validate

注意invalid活动仅在升级到 Backbone 1.0 后可用。请参阅更改日志

于 2013-03-22T05:33:42.713 回答
1

因为您正在调用age.set()而不是为您age.save()调用该validate方法。

于 2013-03-22T04:28:43.503 回答