2017-04-27 24 views
0

我使用在Polymer 2.x的紙張下拉菜單,如下所示:無法預先選擇第一項目從下拉菜單中聚合物2.x的

<paper-dropdown-menu label="Person" class="item"> 
    <paper-listbox id="name" slot="dropdown-content" attr-for-selected="value" selected="{{selName}}" on-iron-select="nameSelected"> 
    <paper-item value="John">John</paper-item> 
    <paper-item value="Bush">Bush</paper-item> 
    <paper-item value="Afridi">Afridi</paper-item> 
    </paper-listbox> 
</paper-dropdown-menu> 

當我從上方下降選擇一些項下拉菜單中,如下所示的下拉是基於所選擇的值填充:

<paper-dropdown-menu label="Balance" class="item"> 
    <paper-listbox id="Balance" slot="dropdown-content" attr-for-selected="value" selected="{{selValue}}"> 
    <template is="dom-repeat" items="[[data]]"> 
     <paper-item value="{{item}}">{{item}}</paper-item> 
    </template> 
    </paper-listbox> 
</paper-dropdown-menu> 

事件處理程序

nameSelected(event) { 
    var selectedItem = event.target.selectedItem.textContent; 
    this.data = []; 
    if (selectedItem === 'John') { 
    for (var i = 0; i < 20; i++) { 
     this.data.push(i); 
    } 
    } else { 
    for (var i = 20; i < 40; i++) { 
     this.data.push(i); 
    } 
    } 

    this.selValue = this.data[0]; 
} 

第一次加載頁面時,預先從Person下拉菜單中選擇第一個值(即John)。因此,Balance(平衡)下拉菜單中的第一個項目(它是零)也被預先選定。這可以。問題是,當我在人員下拉菜單中更改選擇時,儘管平衡下拉菜單已正確填充,但未預先選擇第一個值。

請你指導我解決這個問題。

+0

我試圖實現簡單的聚合物應用程序來重現它,我不能。如果有超過1000個物品,聚合物能夠選擇元素。你能否更新你的問題以便重現它? –

+0

我簡化了我的問題。希望能幫助到你。 – Moazzam

+0

它確實有幫助,它使問題完全不同。檢查我的答案,希望它有幫助。 –

回答

1

看起來這是聚合物2.0元素預覽版本中的一個錯誤。我設法使它與以下代碼一起工作:

if (this.selValue !== this.data[0]) { 
    this.selValue = undefined; 
    setTimeout(() => { this.selValue = this.data[0]; }, 0); 
} 
相關問題