Как добавить навигацию к элементам backgridjs?
Я довольно новичок в магистрали и backgrid и удивляюсь, как добавить привязку для навигации в сетку backgrid? До сих пор я создавал несколько сеток и сохранял их метаинформацию в навигационной коллекции. Элементы навигации и сетки отображаются, но я не вижу, как подключить привязку навигации к чему-либо из таблицы сетки.
Пример кода, где я использую grid.render(). Cid, который не работает:
races = { };
docs.forEach(function(doc) {
if (races[doc.s_y] === undefined) {
races[doc.s_y] = {};
}
if (races[doc.s_y][doc.t] === undefined) {
races[doc.s_y][doc.t] = new Races();
races[doc.s_y][doc.t].add(doc);
} else {
races[doc.s_y][doc.t].add(doc);
}
});
console.log("Found number of docs", docs.length);
var NavigationCollection = Backbone.Collection.extend({
model : Race
});
var navCollection = new NavigationCollection();
var NavView = Backbone.View.extend({
el : $('ul'),
initialize: function(){
_.bindAll(this, 'render');
// this.render();
},
render : function() {
this.collection.each(function (race) {
this.$el.append("<li><a href=#" + race.get("link") + ">" + race.get("track") + " " + race.get("year") + "</a></li>");
}, this);
return this; // remember this for chaining
}
});
var grids = {};
for (var key in races) {
if (races.hasOwnProperty(key)) {
for (var track in races[key]) {
var grid = new Backgrid.Grid({
columns: columns,
collection: races[key][track],
emptyText: "No Data, Loading"
});
if (grids[key] === undefined) {
grids[key] = {};
}
grids[key][track] = grid;
console.log(key + " -> " + races[key][track]);
grid.render().sort("p", "ascending");
console.log(grid.render());
navCollection.add({ year: key, track: track, link: grid.render().cid });
$("#race-results").append(grid.render().el);
}
}
}
var navView = new NavView({
collection: navCollection
});
$("#navigation").append(navView.render().el);
1 ответ
Просто обнаружил, что "идентификатор" может быть определен в определении сетки. Я использую "отслеживать" и сохраняю это как "ссылку" в элементе навигации. Может быть, есть лучшие способы добиться этого?