Javascript 主干网存在严重缺陷
考虑以下示例: 如果尝试保存对模型的更改,但验证失败 但您可以在示例中看到,模型中的数据发生了更改Javascript 主干网存在严重缺陷,javascript,backbone.js,Javascript,Backbone.js,考虑以下示例: 如果尝试保存对模型的更改,但验证失败 但您可以在示例中看到,模型中的数据发生了更改 这真的是一个缺点还是我遗漏了什么?在本例中,数据将发生更改,因为您没有强制验证。如果要在修改客户端模型之前强制验证,则必须使用如下set方法: artis.set({name:'Artis2'}, {validate: true}); 在调用save时,默认情况下总是调用validate:是的,我理解这一点,但使用set会在影响客户端模型之前显式运行验证。在修改客户端模型之后,但在将其持久化到
这真的是一个缺点还是我遗漏了什么?在本例中,数据将发生更改,因为您没有强制验证。如果要在修改客户端模型之前强制验证,则必须使用如下set方法:
artis.set({name:'Artis2'}, {validate: true});
在调用
save
时,默认情况下总是调用validate
:是的,我理解这一点,但使用set会在影响客户端模型之前显式运行验证。在修改客户端模型之后,但在将其持久化到服务器之前,会对保存进行验证。是,确定。您的意思是他的示例根本不会运行validate
。我想我已经失去了几个小时,仅仅是因为这种误解。这不是一个问题?这取决于你希望事情如何运作。如果要避免更改模型,请使用@David F的方法,使用{validate:true}
调用set,如果验证成功,则使用save
。但是您可能希望更改模型,并允许用户使用previousAttributes
功能取消编辑并还原模型?
artis.set({name:'Artis2'}, {validate: true});