2013-03-31 468 views
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。这很奇怪!!请帮忙。

回答

20

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

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

+0

作品,BYT我WHR的persone犯规传视频中看到{验证:真},它仍然有效 – STEEL

+7

@STEEL是的,中老年骨干版本方法'set'自动调用'validate'方法。但是现在验证在默认情况下是禁用的。 –