私はbackbone.jsから始めたばかりで、現在、#listing_filter
テキスト入力要素を含むdivと、RESTfulバックエンド(PHP / Codeigniter)からフェッチされたいくつかのリストを示すテーブルを含むページを作成しています。テキスト入力の値は、サーバーによって取得された結果を絞り込むためのフィルターとして機能します。
問題:テキストボックスのいずれかの値が変更されるたびに、ブラウザーがフィルター値に基づいて別の結果セットを取得するようにします。updateFilter
以下は、テキスト入力値が変更されても関数が起動しない私の試みです。何がうまくいかなかったのか?
もう1つの質問は、のコンテンツをテンプレートに入れるべきか#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>