Reactive page title for Meteor and Iron-Router
Change document.title
(page title) on the fly via iron-router's configuration.
This package supports title
option defined in list below, ordered by prioritization:
Router.route()
[overrides all below]RouteController.extend()
Router.configure()
<title>My Title</title>
[might be overridden by any above]
Install:
meteor add ostrio:iron-router-title
Demo Application:
- Source
Live: http://iron-router-title.meteor.com(We are looking for free hosting for this demo)
Usage:
Set default title in your template, this title will be used if title
isn't specified in router's configuration:
1<head> 2 <title>My default title</title> 3</head>
Set title
property in router's or controller's configuration:
1// Set default document.title value in 2// case router has no title property 3Router.configure({ 4 title: 'Default title' 5}); 6 7Router.route('account', { 8 template: 'account', 9 path: '/me/account', 10 title: 'My Account' 11}); 12 13var LocationController = RouteController.extend({ 14 title: "Location Title" 15}); 16 17Router.route('locations', { 18 controller: LocationController 19});
Use function context:
1Router.route('account', { 2 template: 'account', 3 path: '/me/account/:_id', 4 title: function() { 5 return "Account of " + (this.data().getFullName()); 6 }, 7 data: function() { 8 var self = this; 9 return { 10 getFullName: function() { 11 return Meteor.users.findOne(self.params._id).fullName; 12 } 13 }; 14 } 15});
To change title
reactively, just pass it as function:
1Router.route('account', { 2 template: 'account', 3 path: '/me/account', 4 title: function() { 5 return i18n.get('account.document.title'); 6 } 7});
In this example we've used ostrio:i18n package