9

我刚开始backboneJs。

我使用 VisualStudio2012 做了一个简单的例子。我添加了骨干。

在我的 main.js

var Person = Backbone.Model.extend({
defaults: {
    name: 'Mr Steel',
    age: 26,
    occupation: 'FrontEnd Web Developer'
},

validate: function(attrs) {
    if (attrs.age < 0) {
        return 'Age must be a positive number.';
    }
},

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

但是当我去浏览器>控制台时。并在 .. 中键入以下内容,甚至不会触发。

var person = new Person();
person.get('age');//26
person.set('age', -25);//sets -25

并将年龄设置为-25。这很奇怪!!请帮忙。

4

1 回答 1

21

您必须将{validate:true}参数传递给set方法,例如

person.set('age', -25, {validate:true});

于 2013-03-31T16:30:07.000 回答