我有一个Backbone模型,并在调用setter时进行一些验证。而不是返回错误,我想覆盖该值。我该怎么做?
myObj = Backbone.Model.extend({
// Attributes
x: function() { },
y: function() { },
// Validation
validate: function(atr) {
// Checking for number
var numberRegex = /^\d+$/;
if(!numberRegex.test(atr.x)) // not number
atr.x = 'NA'; // Trying to set x to "NA"
}
});
谢谢!
答案 0 :(得分:1)
您在验证功能中收到的atr是您的模型属性的副本。因此,更改它不会更改模型中的属性。在验证调用this.set('x','NA',{silent:true});
内设置属性。