如何在主干JS中调用model.save时阻止验证函数调用

时间:2016-07-07 03:58:09

标签: validation backbone.js

我有一个骨干视图,我在其中调用model.save来创建/更新表单中提交的日期。在调用save之前,我显式调用了model.isValid(true)来验证表单字段然后我处理表单数据以使其为API预期格式做好准备(通过添加或修改其他字段),然后调用mode.save函数,再次触发验证功能,其中验证由于修改的数据而失败。由于我已经明确地调用了isValid函数,我想在保存期间再次阻止调用。我怎么能在骨干中做到这一点。这是示例代码。

cout.precision(20);
cout << "CHANNELS: " << magnitude.channels() << endl;
cout << magnitude.at<double>(Point(0, 2)) << endl; 
cout << magnitude.at<double>(Point(0, 3)) << endl; 
cout << magnitude.at<double>(Point(0, 4)) << endl; 
cout << magnitude.at<double>(Point(0, 5)) << endl; 

Result | Actual Value:
CHANNELS: 1
0.062870  |  0.1257399049164523,
0.000000  |  12.36316814720732,
0.031404  |  12.50461780753356,
0.000000  |  0.2674320707434279

1 个答案:

答案 0 :(得分:2)

尝试在保存选项中传递{validate:false},例如

book.save({author: "Teddy"}, {validate:false});

根据 0.9.10 版本的更改日志:

  

模型验证现在默认只在Model#save中强制执行,在构建时或Model#set中默认不再强制执行,除非{validate:true}选项通过。

因此传递{validate:false}应该可以解决问题。