0

Thomas Davis による次のチュートリアルを実行し、 age フィールドにいくつかの検証を追加することにしました。次のようにモデルを編集しようとしましたが、成功しませんでした:

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'
        }
    }
});

完全なコードはこちら

チュートリアル: https://www.youtube.com/watch?v=FZSjvWtUxYk

4

1 に答える 1

0

モデルで set または save を呼び出すと、validate メソッドが自動的に呼び出され、何かを返すと save メソッドが続行されなくなります。set/save の外で検証を確認したい場合は、' this.isValid() ' を呼び出すだけです。

checkValidation メソッドには 2 つの問題があります。

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 =
        }
    }

どちらの場合でも、validate メソッドを読み上げる: http://backbonejs.org/#Model-validateか、それがどのように機能するかの内部を見てください: http://backbonejs.org/docs/backbone.html#section- 68

于 2013-10-16T15:32:19.880 に答える