Book Image

Mastering KnockoutJS

By : Timothy Moran
Book Image

Mastering KnockoutJS

By: Timothy Moran

Overview of this book

Table of Contents (16 chapters)
Mastering KnockoutJS
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Child routers


Another common scenario is the need to support routes within routes; this is sometimes called nested or child routes. For example, you might have multiple pages under the parent /about route that are represented by the /about/author and /about/publisher URLs, which are displayed as different subsections of the main /about page.

To do this, the parent route has to capture child routes. It can do this with a splat route or with the hasChildRoutes property:

router.map([
  { route: 'about', moduleId: 'about/index', title: 'About', nav: true, hasChildRoutes: true }
  //OR
  { route: 'about*children', moduleId: 'about/index', title: 'About', nav: true }
]);

Either way is fine, but note that the about*children splat route requires at least one character after the asterisk (*); the about* route will not capture the children properly. Personally, I think the hasChildRoutes property has a clearer intention.

Next, the viewmodel that exposes child routes creates a child router:

define(['plugins...