Skip to content

Instantly share code, notes, and snippets.

@wycats
Last active December 10, 2015 19:08
Show Gist options
  • Save wycats/4479683 to your computer and use it in GitHub Desktop.
Save wycats/4479683 to your computer and use it in GitHub Desktop.

Router

// blogs.handlebars (and blogs/index.handlebars)
match("/blogs").to("blogs", function(match) {
  // blogs/starred.handlebars
  match("/starred").to("starred");
  // blog.handlebars (and blog/index.handlebars)
  match("/:blog_id").to("blog", function(match) {
    // posts.handlebars (and posts/index.handlebars)
    match("/posts").to("posts", function(match) { 
      // posts/post.handlebars
      match("/:post_id").to("post");
    });
  });
});

Links

{{#linkTo blogs}}                       {{! same as blogs.index }}
{{#linkTo blogs.starred}}               
{{#linkTo blog blog}}                   {{! same as blogs.blog.index }}
{{#linkTo posts}}                       {{! same as blogs.blog.posts.index }}
{{#linkTo post post}}                   {{! same as blogs.blog.posts.post }}

Namespaces

// hopefully auto-generated
App.Blogs = Ember.Namespace.create();
App.Blog = Ember.Namespace.create();
App.Posts = Ember.Namespace.create();

Routes

// for blogs.handlebars
App.BlogsRoute = Ember.Route.extend({

});

// for blogs/index.handlebars
App.Blogs.IndexRoute = Ember.Route.extend({

});

// for blogs/starred.handlebars
App.Blogs.StarredRoute = Ember.Route.extend({

});

// for blog/index.handlebars
App.Blog.IndexRoute = Ember.Route.extend({

});

// for posts.handlebars
App.PostsRoute = Ember.Route.extend({

});

// for posts/index.handlebars
App.Posts.IndexRoute = Ember.Route.extend({
  
});

// for posts/post.handlebars
App.Posts.PostRoute = Ember.Route.extend({

});

Controllers

// for blogs.handlebars
App.BlogsController = Ember.ArrayController.extend({

});

// for blogs/index.handlebars
App.Blogs.IndexController = Ember.ArrayController.extend({

});

// for blogs/starred.handlebars
App.Blogs.StarredController = Ember.ArrayController.extend({

});

// for blog/index.handlebars
App.Blog.IndexController = Ember.ObjectController.extend({

});

// for posts.handlebars
App.PostsController = Ember.ArrayController.extend({

});

// for posts/index.handlebars
App.Posts.IndexController = Ember.ArrayController.extend({
  
});

// for posts/post.handlebars
App.Posts.PostController = Ember.ObjectController.extend({

});
@sly7-7
Copy link

sly7-7 commented Jan 8, 2013

Does it make sense and would it be possible to consider the match('/') optional, and just fallback to the enclosing route if it's not defined ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment