2015-03-19 65 views
2

我想賦值紙項目,如下面如何在使用數組時在聚合物的紙下拉菜單中爲紙項分配值?

<paper-item value="1">label1</paper-item> 
<paper-item value="2">label2</paper-item> 
<paper-item value="3">label3</paper-item> 

,但我使用一個數組來得到我的標籤動態地這樣

<paper-dropdown class="dropdown" on-core-overlay-open="{{comboDrop}}"> 
     <core-menu class="menu"> 
     <template repeat="{{processlist}}"> 
       <paper-item>{{}}</paper-item> 
      </template> 
     </core-menu> 
    </paper-dropdown> 

我就當指定數組PROCESSLIST後我得到所需的信息。 像

PROCESSLIST = ARR

,允許我顯示在紙張的下拉菜單的那些標籤。

如何爲紙張項目分配值以及如何訪問與每個標籤對應的值?我知道

detail.item.textContent

讓你的標籤,我們怎麼能得到的數值同樣

我是相當新的JavaScript和聚合物組分所以任何幫助正確的方向將不勝感激。

謝謝!

回答

2

重複表達式是一個迭代器,你可以命名索引和值:

<paper-dropdown class="dropdown" on-core-overlay-open="{{comboDrop}}"> 
<core-menu class="menu"> 
    <template repeat="{{label, i in processlist}}"> 
    <paper-item value="{{i}}>{{label}}</paper-item> 
    </template> 
</core-menu> 
</paper-dropdown> 

你可以閱讀更多有關表達式的高分子這裏:https://www.polymer-project.org/docs/polymer/expressions.html

要回答你的第二部分,我想你想要檢索所選項目的下拉列表的索引?如果是這樣的話,你應該使用紙張下拉菜單組件,允許您指定的值的屬性,你的情況valueattr="value"和檢索通過selected。檢查當前選擇的指數走出這裏的例子:https://github.com/Polymer/paper-dropdown-menu/blob/master/demo.html

或者,如果你只想查詢紙件,你也可以通過shadowRoot來做到這一點,例如在主文檔中:

// Get all paper-items 
var items = document.querySelector("#dropdown").shadowRoot.querySelectors('paper-items[value]'); 

for(var i = 0; i < items.length; i++) { 
console.log("Value for item " + i + " = " + items[i].getAttribute("value")); 
} 

或者,如果你想實現一個自定義組件與你自己的點擊處理程序,那麼它真的很簡單:

在實際的項目,你只需指定一個在單擊處理程序:

<paper-item value="{{i}}" on-click="{{handleClick}}">{{label}}</paper-item> 

,然後將處理程序添加到您的聚合物組件的代碼:

Polymer("my-component", { 

handleClick: function(e) { 
    console.log("You clicked the item with value = " + e.target.getAttribute("value")); 
} 
}); 

希望可以幫助。

相關問題