私のBackbone.jsベースのアプリケーションでは、204ステータスと空のボディで応答する私のAPIと話しています。データはまだありません。そのような場合にRESTfulなAPIがどのように応答するかは私の意見です。Backbone.jsコレクションリクエストで204レスポンスを処理する方法
今私のアプリでは、204の応答を受け取った後に明らかにイベントがトリガーされないという問題があります。私は次のようにreset
とall
をバインドしようとしました:
FoosCollectionView.prototype.initialize = function() {
this.collection = new FoosCollection;
this.collection.bind('reset', this.render, this);
this.collection.bind('all', this.render, this);
return this.collection.fetch();
};
が、イベントは起動しません。そこで、私はいくつかのコールバックを取得しようとしました:
FoosCollectionView.prototype.initialize = function() {
this.collection = new FoosCollection();
return this.collection.fetch({
success: function(a, b, c) {
debugger;
},
error: function(a, b, c) {
debugger;
},
complete: function(a, b) {
debugger;
}
});
};
同じような振る舞いです。応答が204の場合、デバッグステートメントに到達することはありません。どのようにして204の応答を処理できますか?私はsync
に掘り下げてそこに204の余分な処理を加えなければならないのでしょうか、それとも私がまだ分かっていないものがバックボーンにありますか?
ソリューションは、同時にかなり前方と厄介なようだThxをフェリックス
。しかし、そこからの「コンテンツなし」ビューのレンダリングを扱うことは醜いようです。 – GeorgieF
少なくとももう少しエレガントな解決策を見つけました。私は自分のコレクションに解析を定義します。内部私は、指定された応答が空であるかどうかをチェックします。もしそうなら、私はコレクションモデルを[]にセットし、リセットイベントをトリガーします。コレクションビューはそのイベントにバインドされ、その後、「ここにはコンテンツがありません」というテンプレートがレンダリングされます。 – GeorgieF