In addition to having the choice to decide how you hook up your routes, you also have the choice to decide how to define the routes. So far, all the routes you've seen have been simple routes; they define a string of characters, and when Backbone sees that exact string of characters in the URL, it triggers the appropriate routing method. Sometimes, however, you'll want to have routes that are more flexible.
For example, imagine that we have a site which sells books and we want to have a "learn about a particular book" route
. If we have a good number of books on our site, creating routes for each of them individually might get painful:
var SiteRouter = new Backbone.Router({ initialize: function(options) { this.route('book/1', 'book1Route'); // for the book with ID 1 this.route('book/2', 'book2Route'); // for the book with ID 2 this.route('book/3', 'book3Route'); // for the book with ID 3 // this will get old fast } });
Luckily, there are two...