2013-03-27 79 views
0

我很感谢您帮助理解在backbone.js版本1.0.0中保存(即更新)现有模型时为什么不触发验证方法。以下是简化的伪代码; “新”(模型)地点经过验证,但“现有”(模型)地点未在保存时进行验证。保存(更新)现有模型时未触发验证

if (id) { 

// options contains places collection 

place = this.options.places.get(id); 

place.on('invalid', function(m,e) {...}); 

place.save({...}, {wait: true, error: ..., success: ...}) 

} else { 

place = new App.Place() 

place.on('invalid', function(m,e) {...}); 

place.save({...}, {wait: true, error: ..., success: ...}) 

} 

谢谢。

-Ari

+0

眼看骨干型号的保存方法的代码,有2种方式不具有validate方法运行。首先是没有验证方法(你肯定有一个...)。其次是没有将'等待'标志设置为真。你能提供一个jsfiddle吗? – Loamhoof 2013-03-27 14:18:16

+0

我建议你只需使用调试器进入代码,看看它为什么跳过对“验证”的调用。 – WiredPrairie 2013-03-27 16:32:20

回答

0

尝试通过传递{ validate: true }强制验证:

place.save({...}, {wait: true, error: ..., success: ..., validate: true });