Polymer - 使用 iron-pages 更改页面标题
Polymer - Change page title with iron-pages
假设我有 iron-pages
的演示实现(来自它的 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>
现在,我想在页面标题中添加一个后缀以反映所选页面。所以对于 <div>One</div>
我想附加 - selected One
等等。
到目前为止我得到的是在选择路线时在routing.html
中进行更改但是在这里进行更改似乎有点奇怪.还有其他方法吗?
您的 title 元素的值可以是根据 {{selected}} 的值计算的 属性,即:
<myTitle text={{title}} currentSelection={{selected}}></myTitle>
//元素的声明部分
<dom-module id="myTitle">
<template>
<div>{{title}}</div>
</template>
</dom-module>
//命令部分
Polymer({
is: 'myTitle',
properties: {
title: {
type: String,
computed: 'generateTitle'
},
currentSelection: {
type: Number
}
},
'generateTitle': function(){
return '- selected' + this.currentSelection;
}
});
您应该在此处查看我的 Polymer 组件 <page-title>
:https://github.com/zacharytamas/page-title/。您也可以使用 Bower 安装它:
bower install page-title --save
您可能需要某种函数将所选索引从 <iron-pages>
映射到您想要显示为标题的文本。在您的示例中,您可以只选择所选元素的 innerText
,但实际上您的 <iron-pages>
元素实际上包含内容。
这将取决于您的设置,但您可以使用我的组件轻松绑定它们,如下所示:
<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>
这里我只是想将页面标题绑定到 <iron-pages>
中当前所选元素的 title
属性。它工作得很好!您可能必须适应自己的情况,但这应该会让您继续前进。
假设我有 iron-pages
的演示实现(来自它的 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>
现在,我想在页面标题中添加一个后缀以反映所选页面。所以对于 <div>One</div>
我想附加 - selected One
等等。
到目前为止我得到的是在选择路线时在routing.html
中进行更改但是在这里进行更改似乎有点奇怪.还有其他方法吗?
您的 title 元素的值可以是根据 {{selected}} 的值计算的 属性,即:
<myTitle text={{title}} currentSelection={{selected}}></myTitle>
//元素的声明部分
<dom-module id="myTitle">
<template>
<div>{{title}}</div>
</template>
</dom-module>
//命令部分
Polymer({
is: 'myTitle',
properties: {
title: {
type: String,
computed: 'generateTitle'
},
currentSelection: {
type: Number
}
},
'generateTitle': function(){
return '- selected' + this.currentSelection;
}
});
您应该在此处查看我的 Polymer 组件 <page-title>
:https://github.com/zacharytamas/page-title/。您也可以使用 Bower 安装它:
bower install page-title --save
您可能需要某种函数将所选索引从 <iron-pages>
映射到您想要显示为标题的文本。在您的示例中,您可以只选择所选元素的 innerText
,但实际上您的 <iron-pages>
元素实际上包含内容。
这将取决于您的设置,但您可以使用我的组件轻松绑定它们,如下所示:
<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>
这里我只是想将页面标题绑定到 <iron-pages>
中当前所选元素的 title
属性。它工作得很好!您可能必须适应自己的情况,但这应该会让您继续前进。