").addClass('years'); _.each(this.getYears(), function (item) { var year = $("
").addClass('yearEl').appendTo(list); var link = $("", {'href': '#'}).attr('data-year', item.toLowerCase()).html(item.toLowerCase()).appendTo(year); }); return list; }, /* add ui events */ events: { "click #filter li.yearEl a": "setFilter" }, /* Метод вызывает фильтрацию при клике */ setFilter: function (e) { e.preventDefault(); var el = $(e.target); this.filterYear = el.data('year'); this.trigger("change:filterYear"); }, /* Профильтруем представление */ filterByYear: function () { this.collection.reset(books, { silent: true }); var filterYear = this.filterYear, filtered = _.filter(this.collection.models, function (item) { return item.get("Year").toLowerCase() == filterYear; }); this.collection.reset(filtered); $('#filter li.yearEl').removeClass('active'); $('#filter li.yearEl a[data-year='+ filterYear +']').parent().addClass('active'); booksRouter.navigate("filter" + filterYear); }, }); /* Создадим маршрутер */ var BooksRouter = Backbone.Router.extend({ routes: { "filter:year": "urlFilter" }, urlFilter: function (year) { booksList.filterYear = year; booksList.trigger("change:filterYear"); } }); var booksRouter = new BooksRouter(); var booksList = new BooksListView(); Backbone.history.start(); } (jQuery));