backbone.js中的验证方法不起作用

时间:2014-02-27 18:47:10

标签: javascript jquery backbone.js

我正在学习backbone.js,其中使用validate方法。但它没有被set触发 以下是我的代码:

JS:

var person = Backbone.Model.extend({
    defaults:{
        name:"Soni",
        age:'40',
        work:'Still searching'
    },
    mainWork: function(mainwork) {
        return this.get('name')+" does "+mainwork+" for living";
    },
    validate: function(attrs) {
            console.log("hi");
        if (attrs.age < 1) {
            return "can't end before it starts";
        }
    }
});

在控制台上:

var x = new person({name:'xyz',age:37});
x.set('age',-34);

请告诉我,我在这里失踪了什么。

1 个答案:

答案 0 :(得分:3)

将在模型save上调用验证方法。如果你想在属性set上触发它,你应该调用它将验证:true选项:

x.set({age: -34}, {validate: true});