iron-selector selected={{}} 绑定 iron-pages selected={{}} (Switcheroo)
iron-selector selected={{}} binding with iron-pages selected={{}} (Switcheroo)
所以我用 iron-selector 制作了一个自定义菜单,并将其放在另一个包含 iron-pages 的自定义元素上,我无法将菜单按钮与页面内容绑定。
基本上是一个带有自定义元素的 Switcheroo。
这是一些代码(简化):
我的菜单
<dom-module id="my-menu">
<style>
:host {display: inline-block; }
</style>
<template>
<iron-selector id="menu" selected="{{menuSelected}}" attr-for-selected="name-menu">
<div name-menu="portfolio" class="button"></div>
<div name-menu="about" class="button"></div>
<div name-menu="contact" class="button"></div>
</iron-selector>
</template>
<script>
Polymer({
is: 'my-menu',
behaviors: [Polymer.IronSelectableBehavior],
poperties:{
menuSelected:{
type: String,
value: 'portfolio'
}
}
});
</script>
</dom-module>
和我的页面
<dom-module id="my-pages">
<style>
:host {display: inline-block;}
</style>
<template>
<my-menu menu-selected="{{pageSelected}}"></my-menu>
<iron-pages attr-for-selected="page" selected="{{pageSelected}}">
<section page="portfolio"> Some Content </section>
<section page="about"> Some Content </section>
<section page="contact"> Some Content </section>
</iron-pages>
</template>
<script>
Polymer({
is: 'my-pages',
});
</script>
</dom-module>
感谢阅读本文! =)
您可以摆脱 Polymer.IronSelectableBehavior
行为,因为它已经是 iron-selector
加载的依赖项。
您还在 my-menu
元素中拼错了 properties
:'poperties'...
您需要将 'notify: true' 添加到 menuSelected。这样 my-pages 就知道 my-menu 何时修改了 menuSelected 的值。也正如其他人提到的,您需要修复属性的拼写。更改如下:
properties:{
menuSelected:{
type: String,
notify: true,
value: 'portfolio'
}
}
所以我用 iron-selector 制作了一个自定义菜单,并将其放在另一个包含 iron-pages 的自定义元素上,我无法将菜单按钮与页面内容绑定。 基本上是一个带有自定义元素的 Switcheroo。 这是一些代码(简化):
我的菜单
<dom-module id="my-menu">
<style>
:host {display: inline-block; }
</style>
<template>
<iron-selector id="menu" selected="{{menuSelected}}" attr-for-selected="name-menu">
<div name-menu="portfolio" class="button"></div>
<div name-menu="about" class="button"></div>
<div name-menu="contact" class="button"></div>
</iron-selector>
</template>
<script>
Polymer({
is: 'my-menu',
behaviors: [Polymer.IronSelectableBehavior],
poperties:{
menuSelected:{
type: String,
value: 'portfolio'
}
}
});
</script>
</dom-module>
和我的页面
<dom-module id="my-pages">
<style>
:host {display: inline-block;}
</style>
<template>
<my-menu menu-selected="{{pageSelected}}"></my-menu>
<iron-pages attr-for-selected="page" selected="{{pageSelected}}">
<section page="portfolio"> Some Content </section>
<section page="about"> Some Content </section>
<section page="contact"> Some Content </section>
</iron-pages>
</template>
<script>
Polymer({
is: 'my-pages',
});
</script>
</dom-module>
感谢阅读本文! =)
您可以摆脱 Polymer.IronSelectableBehavior
行为,因为它已经是 iron-selector
加载的依赖项。
您还在 my-menu
元素中拼错了 properties
:'poperties'...
您需要将 'notify: true' 添加到 menuSelected。这样 my-pages 就知道 my-menu 何时修改了 menuSelected 的值。也正如其他人提到的,您需要修复属性的拼写。更改如下:
properties:{
menuSelected:{
type: String,
notify: true,
value: 'portfolio'
}
}