Hi,
is it a good idea to use meteor without a router?
Work with Template.dynamic and session var…
Hi,
is it a good idea to use meteor without a router?
Work with Template.dynamic and session var…
I’d say the main reason to use a router is if you want pages of your app to be linkable to others. If you don’t need this then it’s not necessary.
IMHO, a “true” single page app doesn’t need a router, but that is a matter of taste.
Ok thanks,
i have a disadvantage when i use a router, when is not needed?
Not really a disadvantage but why have possibly slower performance & extra code in your project that you don’t really need?
ok i think the same.
do you have a good workaround to manage the templates without a router?
I’d do this:
Meteor.startup(function () {
$("body").on("click", "a", function (event) {
// Prevent default action
event.preventDefault();
// Get page attribute
var pageName = this.page;
// Update current route
Session.set("page", pageName);
})
)
// List your templates somewhere
Session.set("templates", {
pageName: templateName,
pageName2: templateName2
});
Template.layout.helpers({
currentPage: function () {
// Reactively retrieve template name from page session
var templates = Session.get("templates");
var pageName = Session.get("page");
return templates[pageName];
}
})
layout.html
{{> Template.dynamic template=currentPage}}
If you don’t mind the app reloading the page when navigating you could simplify this by using pathnames instead of pageName in the Session.set("templates");
and then retrieve the templateName using templates[window.location.pathname]
in the currentPage
helper - removing the need for the jquery click
event.
thank’s for this example, i think i work without Iron Router or Flow Router.
thank’s for help