我有一个具有title属性的Backbone模型。在验证函数中,它检查标题是否少于40个字符。
在服务器上保存时,它通过php的htmlentities函数*运行title属性。然后,我们输出保存的结果。
如果输入包含任何可以逃避的字符,则htmlentities的输出将比输入长。如果发生这种情况,并且新字符串超过40个字符,则客户端上的模型在尝试解析保存的属性时将无法通过验证。发生这种情况时,不会调用成功/失败回调。这使得它看起来像页面已挂起。
在理想的解决方案中,我希望这可以调用成功回调并忽略失败(因为40个字符更多是软限制)。如果这是不可能的,我希望它至少可以调用失败的回调。
有谁知道如何做到这一点?
谢谢! --Connor
*是的,我知道保存转义数据通常被视为不良做法,但向后兼容性。
答案 0 :(得分:1)
您传递给save()
的选项会传递到sync()
,然后传递给set()
,然后传递给_validate()
,如果传递给它的选项将validate
设置为false。试试这个:
model.save(null, { validate: false })