I've added iron-router to my app to handle routing between the home page, an about page and the main page of the app which is a map
After adding iron-router with meteorite, I wrote a router.js file and placed it in my /client folder, however I'm getting an error that says "Uncaught ReferenceError: Router is not defined "
I checked the error with chrome devtools and it pointed to "Router.configure(..." at the beginning of router.js which I've added below
Router.configure({
layoutTemplate: 'layout',
loadingTemplate: 'loading'
});
Router.map( function () {
//the about route
this.route('about', {
path: '/about',
template: 'about',
action: function () {
console.log('now routing the about template');
}
});
this.route('home', {
path: '/',
template: 'home',
action: function () {
console.log('now routing the home template');
}
});
//the map route
this.route('map', {
path: '/map',
template: 'map',
action: function () {
console.log('now routing the map template');
}
});
});
Does anyone know why I'm getting the error that Router is not defined?
Make sure your meteor version is 0.8.3 or up and use meteorite with command
mrt add iron-router
Others will cause iron router building errors.
Otherwise, check that your codes of router configure are in Meteor.isClient scope. If not, just wrap them in client scope.
if(Meteor.isClient){
Router.configure({
......
});
Router.map(function(){
......
});
}
If Iron-Router was installed below version 0.8.3, you should remove them from packages and smart.json, update meteor with command,
meteor update
and install iron router again with meteorite.
If no error messages show up, everything goes well
I've had similar issues adding iron-router to Meteor 0.8.3.
This recipe seems to work for me.
{"packages": { "iron-router": {"version":"0.8.2"} }}
At this point iron-router is in the packages folder but may not listed in .meteor/packages list. If not:
Hope this is helpful
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With