我有一些文本输入元素,当它的值发生变化时,将触发取回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模型? –