We're finally ready to begin building the router. As you might recall from the index.ejs
file in the views
directory, we pull in a router.js
script, and so, create a router.js
file in the public
directory. Let's start with this:
var Router = Backbone.Router.extend({ initialize: function (options) { this.main = options.main; }, routes: { 'play': 'play', 'play/:level': 'play' }, play: function (level) { var game = new Game(); if (level) game.level = level; game.getWords().then(function () { this.main.append(new GameView({ collection: game }).render().el); }.bind(this)); } });
As in our previous applications, the initialize
method will take an options
object, which will set the main element for the application. In the routes
object, you will see that we create two routes. To play the game, we can go to either /play
or, say, /play/2
: both routes call the play
method. This method creates a Game
collection object;...