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

时间:2013-05-24 20:26:00

标签: javascript backbone.js

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参数以及如何使用它?或者我必须找到其他一些解决方法(在模型上设置标志等)谢谢!

1 个答案:

答案 0 :(得分:3)

以下代码(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 });