私はこの他の質問と同じ基本的な仕事、iron-selector selected={{}} binding with iron-pages selected={{}}をしようとしていますが、ソリューションを複製できないため、私のケースが異なるはずです。アイアンセレクターをアイアンページに正しくバインドする方法は?
ボタンのメニューをiron-selector
にしたいのですが、クリックするとiron-pages
の内容が変更されます。
about-buttons.htm
と呼ばれるボタンメニュー用の1つのwebcomponentを持つ実際のページabout.htm
を持っていて、各ページに1つのwebcomponentがあります。 about-who.htm
,about-manifesto
およびabout-team
。
私の質問はです:
は、どのように私のWebコンポーネントのこのような構造を持つ私は私のページと私のボタンをバインドすることができます - および/または、なぜ私の現在の方法が間違っているのですか?
このような単純なデータバインディングを行うには、さまざまな方法があります。私の方法は間違いなくシンプルで、動作しません(ボタンをクリックするとページが変わりません)。だから私のabout.htm
はこのようになります(これはページの人々が訪れるである)
:このスクリプトでは
<iron-selector
attr-for-selected="name"
selected="{{buttonSelected}}"
fallback-selection="who"
class="f-column f-column_3 f-column_mobile_2">
<button class="f-button-group__button" name="manifesto">Manifesto</button>
<button class="f-button-group__button" name="who">Who we are</button>
<button class="f-button-group__button" name="team">Team</button>
</iron-selector>
:
<about-buttons selected="{{who}}">
</about-buttons>
<about-iron-pages attr-for-selected="name" selected="{{who}}" fallback-selection="who">
<about-us name="who">
</about-us>
<about-manifesto name="manifesto">
</about-manifesto>
<about-team name="team">
</about-team>
</about-iron-pages>
私about-buttons.htm
は、このようになります
<script>
Polymer({
is: 'about-buttons',
properties: {
buttonSelected: {
type: String,
notify: true,
value: 'who'
}
}
});
</script>
そして、ここではiron-pages
の私のバージョンです:すでに指摘したように
<dom-module id="about-iron-pages">
<template>
<style>
:host {
display: block;
}
:host > ::content > :not(.iron-selected) {
display: none !important;
}
</style>
<content>
</content>
</template>
<script>
Polymer({
is: 'about-iron-pages',
behaviors: [
Polymer.IronResizableBehavior,
Polymer.IronSelectableBehavior
],
properties: {
activateEvent: {
type: String,
value: null,
}
},
observers: [
'_selectedPageChanged(selected)'
],
_selectedPageChanged: function(selected, old) {
this.async(this.notifyResize);
}
});
</script>
</dom-module>
コードにエラーがあるようです: 'buttonSelected'と' selected'プロパティ名が矛盾しています。また、単にのボタンをクリックしても、は自動的に選択されません。最後に ''要素が完全に ' 'のテンプレートにありません: –