出于某种奇怪的原因,当我在模型验证中返回一个字符串时,我的模型仍在设置属性。这是我的代码验证代码:
Model = Backbone.Model.extend({
validate: function( attributes ){
var tax = attributes.tax;
if(tax.amount < 0.0 || typeof tax.amount !== "number"){
return "The tax amount cannot be negative and must be a number.";
}
},
defaults: {
"tax": {
"amount": 100
}
},
setTax: function(amount){
var tax = this.get("tax");
tax.amount = amount;
this.set("tax", tax);
}
})
然后我让模型监听错误事件并通过控制台记录它:
model = new Model();
View = Backbone.View.extend({
initialize: function(){
this.model.on('error', function(model, error){
console.log("ERROR: " + error);
})
}
});
view = new View({model: model});
view.model.setTax(-100);
正在打印控制台日志,但由于某种原因模型仍在设置属性。有什么我需要返回以不让模型设置属性吗?根据 Backbone.js 停靠点,如果您从验证中返回任何内容,则假定不设置该属性。我正在使用 Backbone.js 版本 0.9.2