Lets say I have the demo implementation of iron-pages
(from its Github page):
<iron-pages selected="0">
<div>One</div>
<div>Two</div>
<div>Three</div>
</iron-pages>
<script>
document.addEventListener('click', function(e) {
var pages = document.querySelector('iron-pages');
pages.selectNext();
});
</script>
Now, I want to add a suffix to the page title to reflect the selected page. So for <div>One</div>
I would like to append - selected One
and so on.
What I've got so far is to make the change in routing.html
when the route has been selected but it seems a bit weird to make the change here. Are there any other ways of doing this?
You should take a look at my Polymer component <page-title>
here: https://github.com/zacharytamas/page-title/. You can install it with Bower, too:
bower install page-title --save
Likely you'd want some kind of function that maps the selected index from <iron-pages>
to text you want to show as the title. In your example you could just the innerText
of the selected element, but in practice your <iron-pages>
elements would actually have content in them.
This will depend on your setup but you could use my component to easily bind them, something like this:
<dom-module id="my-app">
<template>
<page-title base-title="My Website"
title="[[selectedPage.title]]"></page-title>
<iron-pages selected-item="{{selectedPage}}">
<div title="First Page">One</div>
<div title="Second Page">Two</div>
<div title="Third Page">Three</div>
</iron-pages>
</template>
<script>
Polymer({
is: 'my-app'
});
</script>
</dom-module>
Here I've just done some fanciness to bind the title of the page to the title
attribute of the currently selected element from the <iron-pages>
. It works pretty well! You may have to adopt to your situation but this should get you going.
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