PathFor template helper designed to imitate the functionality of the Iron:Router pathFor helper but using Flow Router in Meteor.
Template.registerHelper('pathFor', function (options) {
var routeName;
if (arguments.length > 1) {
routeName = arguments[0];
options = arguments[1] || {};
}
var opts = options && options.hash;
opts = opts || {};
var path = '';
var query = opts.query;
var hash = opts.hash;
var routeName = routeName || opts.route;
var data = _.extend({}, opts.data || this);
var keys = Object.keys(FlowRouter.current().route._params.keys);
_.each(keys, function (keyConfig) {
var key = keyConfig.name;
if (_.has(opts, key)) {
data[key] = EJSON.clone(opts[key]);
// so the option doesn't end up on the element as an attribute
delete opts[key];
}
});
path = FlowRouter.path(routeName, data, query);
return path;
});