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