现有教程的骨干验证

时间:2013-10-16 14:47:14

标签: javascript jquery backbone.js

我做了Thomas Davis的以下教程,我决定在年龄领域添加一些验证。我试图编辑模型如下,但没有成功:

var User = Backbone.Model.extend({
    validate: function(attr, error) {
        if(attr.age < 18) {
            console.log(error);
            return error;
        }
    },
    checkValidation: function(){
        if (validate) {
           console.log('validation successful');
        } else {
            urlRoot: '/users'
        }
    }
});

完整代码here

教程:https://www.youtube.com/watch?v=FZSjvWtUxYk

1 个答案:

答案 0 :(得分:0)

当您在模型上调用set或save时,将自动调用您的validate方法,并且如果您返回任何内容,将阻止save方法继续,就像您一样。如果您想在设置/保存之外检查验证,只需拨打“this.isValid()”。

checkValidation方法有两个问题:

checkValidation: function(){
        if (validate) { //where is this validate variable coming from?
           console.log('validation successful');
        } else {
            urlRoot: '/users' //not doing anything, don't use : syntax outside of an object
        }
    }

如果你想要一个方法来做到这一点,试试这个:

checkValidation: function(){
        if (this.isValid()) {
           console.log('validation successful');
        } else {
            this.urlRoot = '/users' //must specify this, use =
        }
    }

在任何一种情况下,我都会阅读验证方法:http://backbonejs.org/#Model-validate或查看其工作原理:http://backbonejs.org/docs/backbone.html#section-68