I am having trouble navigating to different routes with a navbar via Backbone. Clicking on #logo
and #home
properly sends me to index
. However clicking on #demo
also sends me to index
instead of the demo
route. Why?
navbar.js
var HeaderNavView = Backbone.View.extend({
tagName: 'div',
template: _.template( HeaderNavTemplate ),
events: {
'click #logo': 'goToIndex',
'click #home': 'goToIndex',
'click #demo': 'goToDemo'
},
render: function() {
var template = this.template();
this.$el.html(template);
return this;
},
goToIndex: function() {
console.log('go to index');
IndexRouter = new Backbone.Router();
var route = '';
IndexRouter.navigate(route, {trigger: true});
},
goToDemo: function() {
console.log('header nav to demo route')
demoRouter = new Backbone.Router();
var route = 'demo';
demoRouter.navigate(route, {trigger: true});
}
});
routes.js
Router = Backbone.Router.extend({
routes: {
'': 'index',
'demo': 'demo'
},
index: function() {
$('#videoIndex').append( IndexTemplate )
var headerNavView = new HeaderNavView;
$('#indexHeaderNav').append( headerNavView.render().el );
...additional nested views
},
demo: function() {
$('#demoDetails').append( DemoTemplate );
...additional nested views
}
});