Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.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 如何使用Backbone.js部分更新(补丁:true)?_Javascript_Rest_Backbone.js_Sync_Http Patch - Fatal编程技术网

Javascript 如何使用Backbone.js部分更新(补丁:true)?

Javascript 如何使用Backbone.js部分更新(补丁:true)?,javascript,rest,backbone.js,sync,http-patch,Javascript,Rest,Backbone.js,Sync,Http Patch,在Model一章的save方法中,Backbone.js文档说明: 如果您只希望将更改的属性发送到服务器,请调用model.save(attrs,{patch:true})。您将获得一个到服务器的HTTP补丁请求,其中只包含传入的属性 资料来源: 我找不到一个很好的解释来解释它的实际工作方式(以及它是否真的有效!)。它应该向服务器发送一个补丁请求,其中仅包含传入的属性,但它总是向服务器发送一个POST请求,该服务器将该模型的所有属性。对于Firebug,我在更改主干时看不到任何区别。emulat

Model一章的save方法中,Backbone.js文档说明:

如果您只希望将更改的属性发送到服务器,请调用model.save(attrs,{patch:true})。您将获得一个到服务器的HTTP补丁请求,其中只包含传入的属性

资料来源:

我找不到一个很好的解释来解释它的实际工作方式(以及它是否真的有效!)。它应该向服务器发送一个补丁请求,其中仅包含传入的属性,但它总是向服务器发送一个POST请求,该服务器将该模型的所有属性。对于Firebug,我在更改主干时看不到任何区别。emulateHTTP:Firebug总是使用save方法显示POST请求

我在这里创建了一个测试: 请注意,url当然不存在,但重要的是在Firebug中查看POST请求。 如您所见,如果您尝试只发送一个属性,它将始终将所有内容发送到服务器,这使得该选项完全无用


为什么骨干开发人员提供这种选项,它的用途是什么?您能举例说明一下它的用法吗?

之所以会出现这种情况,是因为您的模型是新的,主干网“创建新实例”(方法
create
),而不是修补现有实例(方法
patch
)。看看-


太好了,谢谢!有什么方法可以查看补丁请求发送的内容吗?当我阅读文档中的
{PATCH:true}
选项并试图弄清楚它是如何工作的时,我问自己如何确定必须传递哪些属性才能只将未保存的属性发送到服务器。如果其他人现在想要,你可以阅读。希望这能帮助别人。
'create': 'POST',
'update': 'PUT',
'patch':  'PATCH',
'delete': 'DELETE',
'read':   'GET'