私は、テーブルに入れたページ分割されたコレクションを返すバックボーン アプリケーションを持っています。以下に示すように、一度に 1 列にフィルターを適用できます。
意見:
(function (views) {
views.PaginatedView = Backbone.View.extend({
events: {
'click a.filter': 'filter'
},
getFilterField: function () {
return $('#filterByOption').val();
},
getFilterValue: function () {
return $('#filterString').val();
},
filter: function (e) {
e.preventDefault();
var fields = this.getFilterField(); // returns a value from a dropdown
var filter = this.getFilterValue(); // returns a value from my input
this.collection.setFilter(fields, filter);
this.collection.pager();
}
});
})(app.views);
テンプレート:
<select id="filterByOption">
<option value="Account">Account</option>
<option value="Owner">Owner</option>
</select>
<span class="cell sort">
<input id="filterString" type="text" class="cell" />
<a href="#" class="filter btn small">Filter</a>
</span>
私の問題は次のとおりです。追加のフィルターを追加のフィールドに適用したいのですが、私が知る限り、このsetFilter
関数では一度に 1 つのフィールドのみをフィルター処理できます。たとえば、アカウント: 123 でフィルタリングしたいのですが、そのうちの所有者はボブです。現時点では、アカウントまたは所有者のいずれかでのみフィルタリングできます。