JSFiddle - React, Tailwind, and code Playground
by dmelnik
HTML
<script src="https://cdn.rawgit.com/jashkenas/underscore/1.5.2/underscore.js"></script>
<script src="https://cdn.rawgit.com/jashkenas/backbone/1.1.0/backbone.js"></script>
<script src="https://cdn.rawgit.com/wyuenho/backbone-pageable/master/lib/backbone-pageable.js"></script>
<script src="https://cdn.rawgit.com/wyuenho/backgrid/master/lib/backgrid.js"></script>
<script src="https://cdn.rawgit.com/wyuenho/backgrid-filter/master/backgrid-filter.js"></script>
<div id="client-side-filter"></div>
<div style="float:left">
<div id="main"></div>
</div>
JavaScript
var items = [
{id:1, priority:1, type:3},
{id:2, priority:2, type:2},
{id:3, priority:3, type:1},
{id:4, priority:4, type:2},
{id:5, priority:5, type:2},
{id:6, priority:6, type:3},
{id:7, priority:7, type:2},
{id:8, priority:8, type:1},
{id:9, priority:9, type:3},
{id:10, priority:10, type:2},
{id:11, priority:11, type:2},
{id:12, priority:12, type:1},
{id:13, priority:13, type:3},
{id:14, priority:14, type:4},
{id:15, priority:15, type:2},
{id:16, priority:16, type:3},
{id:17, priority:17, type:2},
{id:18, priority:18, type:1},
{id:19, priority:19, type:1},
{id:20, priority:20, type:2}
];
var collection = new Backbone.Collection(items);
var grid = new Backgrid.Grid({
collection : collection,
columns : [{
name : 'priority',
label : 'Priority',
cell : Backgrid.NumberCell,
sortable: true
},{
name : 'type',
label : 'Type',
cell : Backgrid.NumberCell,
sortable : true
}]
});
// Вот тут интересующая тебя часть:
var self = {};
// Создаём новый экземпляр конструктора фильтра с переопределённым методом
var newServerSideFilter = Backgrid.Extension.ServerSideFilter.extend({
clear: function() {
var self = this,
// Получаем ссылку на родителя
parent = newServerSideFilter.__super__;
// Сделать что-нибудь.
// Вызываем метод родителя и возвращаем его результат
return parent.clear.apply(self, arguments);
}
});
// Используем свой экземпляр конструктора фильтра
self.serverSideFilter = new newServerSideFilter({
collection: collection,
name: 'keywords',
className: 'js-poll-search backgrid-filter',
placeholder: 'Search polls'
});
self.serverSideFilter.clear();