Monday, 15 February 2010

javascript - How do I disambiguate nested routes in ember.js? -



javascript - How do I disambiguate nested routes in ember.js? -

i have 2 resources both have same sub-resource:

class="lang-js prettyprint-override">app.router.map(function() { this.resource('post', function() { this.resource('comments', function() { this.route('new'); }); }); this.resource('product', function() { this.resource('comments', function() { this.route('new'); }); }); });

the problem ember router builds names of route objects out of current , parent routes, not out of whole hierarchy. thus, tries route both /posts/:id/comments/new , /products/:id/comments/new app.newcommentroute object. can prepare this?

this post adapted github issue.

i took james a. rosen's solution 1 step farther , worked charm. bit redundant, makes things much more intuitive downwards road:

app.router.map(function() { this.resource('post', function() { this.resource('post.comments', { path: '/comments' }, function() { this.route('new'); }); }); this.resource('product', function() { this.resource('product.comments', { path: '/comments' }, function() { this.route('new'); }); }); });

this allows utilize transitionto('product.comments.new') or app.register('route:product.comments.new', myroutehandler) expected.

if don't manually register route handler, ember, gracefully, in app.productcommentsnewroute

the downside redundancy of defining name of sub-resource same root name parent resource has.

javascript ember.js ember-router

No comments:

Post a Comment