通常在我的主干验证中,我有大量的if()
语句,正如我在许多其他代码示例中看到的那样。验证几乎是骨干中的废话。但是,这种if()
方式似乎有效。我想稍微清理一下代码并编写一些代码来return error
阻止骨干保存属性,但事实并非如此!
旧代码有效
validate : function(attr){
if(attr.firstName){
var defaultValue = 'first name',
value = attr.firstName.toLowerCase();
if(value == defaultValue){
return 'error';
}
}
}
新代码不起作用
//My default strings from another place
MyApp.strings.defaults = {
firstName : 'first name'
}
//Model Validate function
validate : function(attr){
jQuery.each(attr, function(key, value){
var defaultValue = MyApp.strings.defaults[key];
if(defaultValue){
defaultValue = jQuery.trim(defaultValue.toLowerCase());
if(value == defaultValue){
console.log(value, defaultValue); //fires, and outputs both as being the same
return 'error';
}
}
});
}
您是否不允许在 Backbone 验证中循环遍历属性?