1

私はbackbone.jsについて頭を悩ませようとしていて、モデルを検証する方法についてhttps://tutsplus.com/lesson/validating-models/のチュートリアルに従おうとしていますが、何らかの理由で私のコードはうまくいきません.検証しない

なぜそれが考えられるのですか?

var Person = Backbone.Model.extend({
  defaults: {
    name: 'John Doe',
    age: 30,
    occupation: 'worker'
  },

  validate: function (attrs) {
    if (attrs.age <= 0) {
        return "age must be positive";
    }

    if (!attrs.name) {
        return "every person must have a name";
    }
  },

  work: function () {
    return this.get('name') + ' is working.';
  }
});

誰でも助けてもらえますか?コードに何か問題がありますか?

4

1 に答える 1

1

Backbone は最近、検証が行われる状況を変更しました。以前はデフォルトで on で発生していましmodel.set()たが、現在は (デフォルトで) on でのみ発生しますmodel.save()。明示的に呼び出すmodel.validate()か、別のコメンターが指摘したように、に{validate: true}オプションを渡す必要がありますmodel.set()

あなたが参照しているチュートリアルは、model.set()動作が変更される前に書かれたものだと思います。

于 2013-02-02T05:56:03.543 に答える