値が変更されると、listingListView
コレクションのフェッチをトリガーするテキスト入力要素がいくつかあります。コレクションは、次に示すように、関数を介して新しいデータでlistingCollection
更新されます。PHP/Codeigniterを使用してRESTfulAPIを公開しています。listingListView
listingListView.refreshList
問題:から取得した結果がある場合は、すべて正常に機能しますfetch()
。ただし、フィルターの結果が返されない場合、サーバー側とクライアント側はそれをどのように処理する必要がありますか?現在、Chromeのjavascriptコンソールに404
エラーが表示され、[ネットワーク]タブでXHRリクエストが赤で強調表示されます。結果がゼロの場合に私がしたいのは、を空白にして(結果が返されない)listingListView
のようなメッセージを表示し、JavaScriptコンソールでエラーをスローしないことです。ありがとう!
PHPコード
function listings_get() {
// Get filters
$price_min = $this->get('price_min');
$this->load->model('app_model');
$results = $this->app_model->get_listings($price_min);
if($results)
$this->response($results);
else
$this->response(NULL);
}
JSコード
window.ListingListView = Backbone.View.extend({
tagName: 'table',
initialize: function() {
this.model.bind('reset', this.refreshList, this);
this.model.bind('add', function(listing) {
$(this.el).append(new ListingListItemView({ model: listing }).render().el);
}, this);
},
render: function() {
_.each(this.model.models, function(listing) {
$(this.el).append(new ListingListItemView({ model: listing }).render().el);
}, this);
return this;
},
close: function() {
$(this.el).unbind();
$(this.el).empty();
},
refreshList: function() {
$(this.el).empty();
this.render();
}
});