在事件上不起作用?

时间:2013-03-22 04:21:04

标签: javascript backbone.js

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

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活动不起作用? 请帮帮我....

2 个答案:

答案 0 :(得分:3)

在集合中传递{validate:true}作为选项。

  

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

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

注意invalid事件仅在升级到Backbone 1.0后可用。见Change log

答案 1 :(得分:1)

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