js非常简单的验证模型不工作-跟随webtuts教程

Backbone.js very simple validate model not working - following webtuts tutorial

本文关键字:工作 跟随 webtuts 教程 模型 非常 简单 验证 js      更新时间:2023-09-26

我在tutsplus.com上遵循本教程,它似乎非常简单,但当我运行person.set('age', -27);时,它不返回false,而是将属性设置为负值。我看了骨干文档验证以及一些在线帖子,它似乎应该工作?我知道我还不能得到返回字符串。

这是我的js,除非我一直遗漏的东西是完全相同的视频:

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, stupid.';
    }
  },
  work: function() {
    return this.get('name') + ' is working.';
  }
});

我读了一些地方说不要通过silent: true,我不认为我是…

正如@xat和@mu太短所指出的那样,这个问题是一个过时的视频-尽管一些早期的视频已经更新到最新版本。9.10的更新日志如下:

Model validation is now only enforced by default in Model#save and no longer enforced by default upon construction or in Model#set, unless the {validate:true} option is passed.

所以我决定通过validate:true,也测试了Model#save,每个都工作。

谢谢你们了!