我可以在 Backbone.js 的 model.validate() 函数中使用 options 参数吗?



Backbone.js允许我用原型扩展模型的验证函数:validate: function (attrs, options) { ... }

我想做的是能够执行一些测试只有当一个特定的选项被传递到options参数。我试过在验证函数中调用model.isValid({specialCheck: true})并检查options.specialCheck,但它似乎不起作用:

validate: function(attrs, options) {
  if(options.specialCheck) {
    // Perform special checks
    ...
  }
  // Perform regular checks
  ...
}

什么是options参数,如何使用它?或者我必须找到一些其他的解决方案(在模型上设置标志等),谢谢!

下面的代码(jsfiddle)可以工作:

var MyModel = Backbone.Model.extend( {
    validate : function( attrs, options ) {
        if( options.specialValidation ) {
            alert("is special");
        }
        else {
            alert("is not special");
        }
    }
});
var m = new MyModel();
m.isValid({ specialValidation : true });

最新更新