1

通常、バックボーンの検証では、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';
            }
        }
    });
}

バックボーン検証で属性をループすることは許可されていませんか?

4

1 に答える 1