paper-dropdown-menu
は、特定の値が別のpaper-dropdown-menu
で選択されている場合にのみ表示しようとしています。別の値を選択した場合、ペーパードロップダウンメニューが表示される
私はselectedValue
というプロパティを使用して、dom-if
テンプレートのif
属性に選択した値をバインドしています。
<link rel="import" href="../bower_components/polymer/polymer-element.html">
<link rel="import" href="../bower_components/polymer/lib/elements/dom-if.html">
<link rel="import" href="../bower_components/polymer/lib/elements/dom-repeat.html">
<link rel="import" href="../bower_components/paper-dropdown-menu/paper-dropdown-menu.html">
<link rel="import" href="../bower_components/paper-listbox/paper-listbox.html">
<link rel="import" href="../bower_components/paper-item/paper-item.html">
<dom-module id="my-element">
<template>
<paper-dropdown-menu label="One" no-animations>
<paper-listbox slot="dropdown-content" class="dropdown-content" selected="{{selectedValue}}">
<template is="dom-repeat" items="[[options1]]">
<paper-item>[[item]]</paper-item>
</template>
</paper-listbox>
</paper-dropdown-menu>
<template is="dom-if" if="[[_view()]]">
<paper-dropdown-menu label="Two" no-animations>
<paper-listbox slot="dropdown-content" class="dropdown-content">
<template is="dom-repeat" items="[[options2]]">
<paper-item>[[item]]</paper-item>
</template>
</paper-listbox>
</paper-dropdown-menu>
</template>
</template>
<script>
/**
* @customElement
* @polymer
*/
class MyElement extends Polymer.Element {
static get is() { return 'my-element'; }
static get properties() {
return {
selectedValue : {
type : String
},
options1 : {
type: Array,
value: [1,2,3,4]
},
options2 : {
type: Array,
value : [5,6,7]
}
};
}
_view() {
return this.selectedValue === "1";
}
}
window.customElements.define(MyElement.is, MyElement);
</script>
</dom-module>
問題は2番目ですpaper-dropdown-menu
は表示されません。
素晴らしい、あなたは正しいです!しかし、問題があります:デモでは、2番目のオプション( '2')を選択すると2番目のメニューが表示され、最初のオプション(' 1')を選択すると2番目のメニューが表示されます。問題は 'selectedValue'は選択されたインデックスであり、選択されたインデックスではないことです。どうして? – Amparo
ドキュメントは、デフォルトでは、 .selected'が選択された項目のインデックスであることを示しています。項目の値を代わりに使用するには、項目の属性を目的の値に設定し、属性の名前を ' .attrForSelected'で指定する必要があります。 –
tony19