1
我試圖僅在另一個paper-dropdown-menu
中選擇特定值時才顯示paper-dropdown-menu
。在另一個選擇的值中顯示紙張下拉菜單
我使用了一個名爲selectedValue
選定值綁定到if
屬性在dom-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>
問題是第二個paper-dropdown-menu
從不顯示。
太棒了,你是對的!但是,有一個問題:在演示中,當我選擇第二個選項('2')時顯示第二個菜單,當我選擇第一個選項('1')時應該顯示它。問題是'selectedValue'包含選定的索引而不是選定的值。爲什麼? – Amparo
文檔指出' .selected'是默認選定項目的索引。爲了使用該項目的值,您必須將該項目的屬性設置爲所需的值,然後在' .attrForSelected'中指定該屬性的名稱。 –
tony19