我关注this tutorials on tutsplus.com并且看起来非常简单,但是当我运行person.set('age', -27);
时,它不返回false,而是将属性设置为负值。我查看了backbone documentation on validate以及在线的一些帖子,看起来应该有用吗?我知道我还没有收到返回字符串。
这是我的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
的地方,我不认为我......至少在我的代码中没有明确说明..
答案 0 :(得分:1)
正如@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
进行测试,每个都有效。
谢谢你们!