Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 主干网存在严重缺陷_Javascript_Backbone.js - Fatal编程技术网

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});