2

PUTおよびPOSTリクエストに関連する別の質問があります。したがって、ここに「名前」や「リンク」などのフィールドを持つフォームがあります。

そのフォームを送信すると、this.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])
}
4

1 に答える 1

2

saveメソッドは、の戻り値に基づいてPOSTするかPUTするかを決定しますisNew()。このメソッドは通常、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. */ }
  });
}

もう1つの方法はBackbone.Modelbinder、DOMとモデル間の同期を処理するようなライブラリを使用することです。

モデルでこれらの新しいメソッドを定義する必要はありません。url代わりに、モデルまたは対応するコントローラーで適切なメソッドを定義する必要があります。次に、通常のメソッドfetchsaveメソッドを使用して、get/updatesを処理できます。

于 2012-12-07T00:09:55.750 に答える