Model.save() 逻辑上,根据当前这个model的是否具有 id 来判断应该使用POST还是PUT,
如果model没有id,表示是新的模型,将使用 POST ,将模型的字段全部提交到 /resources ;
如果model具有id,表示是已经存在的模型,将使用 PUT ,将模型的全部字段提交到 /resources/{id} 。
当传入 options 包含 patch:true 的时候,save会产生 PATCH 。
Model.destroy() 会产生 DELETE ,目标url为 /resources/{id} ,如果当前model不包含id时,不会与服务端同步,
因为此时backbone认为model在服务端尚不存在,不需要删除
Model.fetch() 会产生 GET ,目标url为 /resources/{id} ,并将获得的属性更新model。
Collection.fetch() 会产生 GET ,目标url为 /resources ,并对返回的数组中的每个对象,自动实例化model
Collection.create() 实际将调用 Model.save
options 参数存在于上面任何一个方法的参数列表中,通过 options 可以修改backbone和ajax请求的一些行为,
可以使用的options包括:
wait : 可以指定是否等待服务端的返回结果再更新model。默认情况下不等待
url : 可以覆盖掉backbone默认使用的url格式
attrs : 可以指定保存到服务端的字段有哪些,配合 options.patch 可以产生 PATCH 对模型进行部分更新
patch : 指定使用部分更新的REST接口
data : 会被直接传递给jquery的ajax中的data,能够覆盖backbone所有的对上传的数据控制的行为
其他 : options中的任何参数都将直接传递给jquery的ajax,作为其options