Skip to content

Instantly share code, notes, and snippets.

@gx0r
Created November 26, 2015 07:45
Show Gist options
  • Save gx0r/7b38ed0edd390525d437 to your computer and use it in GitHub Desktop.
Save gx0r/7b38ed0edd390525d437 to your computer and use it in GitHub Desktop.
Mithril Route Monkeypatch
function mountWrapper(component) {
var origCtrl = component.controller;
component.controller = function () {
setImmediate(function () {
var orgid = m.route.param('orgid');
var org = m.prop(null);
var route = m.route();
var routeSplit = m.route().split('/');
if (orgid) {
var url = '/api/organizations';
url += '/' + orgid;
m.request({
url: url,
config: identity.withAuth
})
.then(function (theOrg) {
org(theOrg);
m.mount(navEl, m.component(navbar, {
route: route,
org: org,
orgid: orgid,
routeSplit: routeSplit
}));
})
} else {
m.mount(navEl, m.component(navbar, {
route: route,
org: org,
orgid: orgid,
routeSplit: routeSplit
}));
}
});
return origCtrl.call(this, arguments);
}
return component;
}
m.route(mainElement, '/organizations', {
'/login': mountWrapper(login),
'/logout': mountWrapper(logout),
'/organizations': mountWrapper(organizations),
'/organizations/:orgid/edit': mountWrapper(neworganization),
'/organizations/:orgid': mountWrapper(organization),
'/neworganization': mountWrapper(neworganization)
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment