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 最近改变了验证发生的情况。它过去默认发生在 onmodel.set()但现在只发生(默认) on model.save()。您需要显式调用model.validate(),或者正如另一位评论者指出的那样,将{validate: true}选项传递给model.set().

我猜你引用的教程是在改变model.set()行为之前编写的。

于 2013-02-02T05:56:03.543 回答