我有一些文本輸入元素,當它的值發生變化時,將觸發取回listingListView
的集合listingCollection
,然後通過功能listingListView.refreshList
用新數據更新listingListView
,如下所示。我使用PHP/Codeigniter來公開RESTful API。backbone.js如何處理不返回結果的GET請求?
問題:一切工作正常,如果有從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();
}
});
是listingCollection集合?看起來像你的綁定ListingListView模型? –