0

バックボーン 0.9.10 を使用しています。

var Person = Backbone.Model.extend({
    defaults: {
        name: "John Doe",
        age: 30
    },
    validate: function (attrs) {
        if (attrs.age < 0) {
            console.log("Age must be positive, idiot!");
        };
    }
});

コンソールでこれを行うと...

var p = new Person;
p.set("age", -20, {validate: true});

...とにかく私のモデルは更新されます。どうすればそれを防ぐことができますか?

未解決の問題があることは知っていますが、回避策はありますか? それとも、バグ修正を待つ必要がありますか?

4

1 に答える 1

3

問題は、 への呼び出しがではなくset属性名Age(大文字の) を使用していることです。Aage

p.set("age", -20, {validate: true});

また、 がvalidate失敗した場合は、 以外のものを返す必要がありますundefined

validate: function (attrs) {
    if (attrs.age < 0) {
        return "Be more positive!";
    }
}
于 2013-03-13T19:38:40.110 に答える