Using Meteor, I started with a default Meteor project with...
meteor create --full
I added a route, in router.js, like so:
FlowRouter.route('/group/:_id', {
name: 'App.groups.show',
action() {
if (!logged_in()) {
FlowRouter.go("App.home");
}
else {
this.render('App_body', 'Group');
}
},
});
router.js is here:
/imports/startup/client/router.js
The Group template is this:
<template name="Group">
{{> user_group}}
</template>
And for user_group, I have this:
Template.user_group.onCreated(function user_groupOnCreated() {
console.log("id", FlowRouter.getParam('_id'));
});
This results in:
ReferenceError: FlowRouter is not defined
at Blaze.TemplateInstance.user_groupOnCreated (user-group.js:46)
at template.js:119
at Function.Template._withTemplateInstanceFunc (template.js:490)
at fireCallbacks (template.js:115)
at Blaze.View.<anonymous> (template.js:195)
at fireCallbacks (view.js:276)
at Object.Tracker.nonreactive (tracker.js:603)
at view.js:273
at Object.Blaze._withCurrentView (view.js:533)
at Object.Blaze._fireCallbacks (view.js:272)
I also do not have access to FlowRouter.go
in my templates.
What am I missing?
You need to import FlowRouter
in every js that actively uses it (in your example the Template):
import { FlowRouter } from 'meteor/kadira:flow-router'
Template.user_group.onCreated(function user_groupOnCreated() {
console.log("id", FlowRouter.getParam('_id'))
})