Skip to content

Instantly share code, notes, and snippets.

@annayo
Created February 25, 2015 19:36
Show Gist options
  • Save annayo/ead567b083896fc8c29a to your computer and use it in GitHub Desktop.
Save annayo/ead567b083896fc8c29a to your computer and use it in GitHub Desktop.
link-to-custom
Ember.Handlebars.registerBoundHelper('link-to-custom', function () {
var args = [].slice.call(arguments);
var options = args[args.length-1];
var segments = App.Router.router.recognizer.recognize(args.shift().toLowerCase());
if (!segments) { return; }
var max = segments.length - 1;
for (var i = max; i > 0; i--) {
// assign dynamic segments to args ['dynamic-segment1', 'dynamic-segment2']
if (segments[i].isDynamic) {
var key = Object.keys(segments[i].params)[0];
args.unshift(segments[i].params[key]);
options.types.unshift('STRING');
}
}
// assign last-most handler as route to args ['route-name', 'dynamic-segment1', 'dynamic-segment2']
args.unshift(segments[max].handler);
options.types.unshift('STRING');
return Ember.Handlebars.helpers['link-to'].apply(this, args);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment