1

我实现了这个简单的功能来检测主干模型中任何不需要或未指定的属性:

var Underscore = require( '/usr/local/lib/node_modules/underscore' ),
    Backbone = require( '/usr/local/lib/node_modules/backbone' ),
    Validation = require( '/usr/local/lib/node_modules/backbone-validation' );

Underscore.extend( Backbone.Model.prototype, Validation.mixin );

var User = Backbone.Model.extend( {
   validation: {
        firstname: {
            minLength: 1,
            maxLength: 20,
            required: true
        },
        lastname: {
            minLength: 1,
            maxLength: 20,
            required: true
        }
    }, 
    ...

    isAttributeAccepted: function( attr ) {
        var retval = false;
        for ( var property in this.validation ) {
            if ( attr == property ) {
                retval = true;
                break;
            }
        }
        return retval;
    },
    ...

正在使用:

var user = new User();
var isDesired = user.isAttributeAccepted( "nop" );
console.log( isDesired ) // false;

我这样做只是因为我在 Backbone.validation 中找不到任何东西来替换它。我怎样才能用使用 Backbone.validation (github thederson.com) 的首选方式替换此代码?

谢谢。

4

1 回答 1

1

我还没有找到方法backbone.validation来做到这一点,但你可以更容易地编写你的代码:

    isAttributeAccepted: function(attr) {
        return _.has(this.validation, attr);
    },
于 2014-03-26T06:30:41.990 回答