Backbone.js中的PUT和POST请求

时间:2012-12-07 00:01:53

标签: jquery backbone.js backbone-model backbone-forms

我还有另一个与PUT和POST请求相关的问题。所以,这里我有一个表单,其中包含:“name”和“link”。

在提交该表单时,我无法在执行此操作时将该表单发布到服务器.model.save();

另外,我如何理解模型何时调用POST以及何时调用PUT请求?由于我的api响应中没有任何“id”属性,所以我的模型也没有任何id。

那么如何在点击“提交”按钮作为POST请求时传递我的表单字段值?

此外,有没有办法可以调用请求:例如:如果我点击我的表单的“更新”按钮,我将从我的模型中调用一个函数

updateModel:function(options){
this.update("update","/messages",[options])
}

或get请求可以像这样读取

getModel:function(options){
this.update("read","/messages",[options])
}

1 个答案:

答案 0 :(得分:2)

save方法将根据isNew()的返回值确定是POST还是PUT。此方法通常只检查正在填充的id。您可以覆盖它以使用其他指标。

将提交时的表单字段值直接传递给save方法。像这样:

//In your view
events : {"submit" : "onSubmit"},
onSubmit : function(e) {
  e.preventDefault();
  this.model.save({name: this.$("#name").val()}, {
    success : function (newModel) { /* Do something here. */ }
  });
}

另一种方法是使用像Backbone.Modelbinder这样的库来处理DOM和模型之间的同步。

您不需要在模型上定义这些新方法。您应该在模型或相应的控制器上定义正确的url方法。然后,您只需使用普通的fetchsave方法来处理您的获取/更新。