Polymer 如何将选定的core菜单项放入自定义聚合物元素中?
我试图将Polymer 如何将选定的core菜单项放入自定义聚合物元素中?,polymer,Polymer,我试图将纸张下拉列表封装在纸张按钮中。为此,我制作了一个自定义元素,纸张下拉框: 聚合物({ 切换:函数(){ 如果(!this.dropdown){ this.dropdown=this.querySelector(“纸面下拉菜单”); } this.dropdown&&this.dropdown.toggle(); } }); 我在页面中使用它,就像: <paper-dropdown-holder raised tabindex="0" class="unpadded">
纸张下拉列表
封装在纸张按钮
中。为此,我制作了一个自定义元素,纸张下拉框
:
聚合物({
切换:函数(){
如果(!this.dropdown){
this.dropdown=this.querySelector(“纸面下拉菜单”);
}
this.dropdown&&this.dropdown.toggle();
}
});
我在页面中使用它,就像:
<paper-dropdown-holder raised tabindex="0" class="unpadded">
<paper-dropdown class="dropdown" flex>
<core-menu class="menu" selected="0">
<paper-item><a href="#writing">Writing</a></paper-item>
<paper-item><a href="#blog">Blog</a></paper-item>
<paper-item><a href="#art">Art</a></paper-item>
</core-menu>
</paper-dropdown>
</paper-dropdown-holder>
我的问题是,如何将当前所选菜单项的文本自动放入纸张下拉框
我的第一次尝试是只使用标准的纸张下拉菜单
,但我不能像纸张按钮那样轻松地设置样式有没有办法做到这一点而不是(因为没有更好的术语)哈奇?如果答案符合聚合物哲学,我很乐意
额外挑战:如何设置“选择部分”之类的默认文本?Polymer最棒的事情之一是它的开源。。。也就是说,您可以学习如何在现有元素的基础上实现新元素
如果您查看纸张下拉菜单
源代码,您可以很容易地制作类似的东西,但使用纸张按钮
作为“控件”
So
新元素应扩展核心下拉列表基础
纸张按钮
要使该元素在逻辑上工作,您可以使用
通过装订(core overlay open
)获得纸张下拉菜单的一些帮助,
核心激活
,核心选择
)事件到相应的处理程序。
(实际绑定发生在core下拉列表base
indropdown
调用内部附加的
事件侦听器的getter
把它们放在一起:
<polymer-element name="paper-dropdown-holder" extends="core-dropdown-base" relative>
<template>
<div>
<paper-button raised on-tap="{{toggle}}">{{selectedItemLabel || label}}</paper-button>
<content></content>
</div>
</template>
<script>
Polymer('paper-dropdown-holder', {
publish: {
label: 'Select an item',
},
selectedItemLabel: '',
overlayListeners: {
'core-overlay-open': 'openAction',
'core-activate': 'activateAction',
'core-select': 'selectAction'
},
activateAction: function(e) {
this.opened = false;
},
selectAction: function(e) {
var detail = e.detail;
if (detail.isSelected) {
this.selectedItemLabel = detail.item.label || detail.item.textContent;
} else {
this.selectedItemLabel = '';
}
}
});
</script>
</polymer-element>
{{selectedItemLabel | | label}
聚合物(“纸张下拉支架”{
出版:{
标签:“选择项目”,
},
selectedItemLabel:“”,
超链接链接器:{
“core overlay open”:“openAction”,
“核心激活”:“激活反应”,
“核心选择”:“选择操作”
},
激活反应:功能(e){
this.opened=false;
},
选择操作:功能(e){
var-detail=e.detail;
如果(选择详细信息){
this.selectedItemLabel=detail.item.label | | detail.item.textContent;
}否则{
this.selectedItemLabel='';
}
}
});
.我想我的帖子已经回答了你的问题,除非你对此有任何说明?