我刚开始使用backbone.js,目前正在制作一个页面,其中包含一个#listing_filter
包含文本输入元素的div和一个显示从RESTful后端(PHP / Codeigniter)获取的一些列表的表格。文本输入中的值将充当过滤器,以缩小服务器检索的结果范围。
问题:每当任何文本框中的值发生变化时,我都希望浏览器根据过滤器值获取另一组结果。以下是我的尝试,updateFilter
即使文本输入值已更改,该函数也不会触发。任何想法出了什么问题?
另一个问题是我应该将 的内容#listing_filter
放入模板中,还是将其硬编码到主体 HTML 中?谢谢!
JS代码
window.ListingFilterView = Backbone.View.extend({
initialize: function() {
_.bindAll(this, 'updateFilter');
},
events: {
'change input' : 'updateFilter'
},
updateFilter: function() {
console.log('hey');
}
});
// Router
var AppRouter = Backbone.Router.extend({
routes: {
'': 'listings',
},
listings: function() {
//... some other code here
this.listingFilterView = new ListingFilterView();
}
});
HTML 代码
<div id="listing_filter">
Price: <input type="text" id="listing_filter_price" />
Beds: <input type="text" id="listing_filter_bedroom" />
Baths: <input type="text" id="listing_filter_bathroom" />
</div>