Skip to content

FlowRouter is not defined in individual templates

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: '',
  action() {
    if (!logged_in()) {
    else {
      this.render('App_body', 'Group');

router.js is here:


The Group template is this:

<template name="Group">
  {{> user_group}}


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'))