通常、バックボーンの検証では、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';
}
}
});
}
バックボーン検証で属性をループすることは許可されていませんか?