2015-10-19 17 views
1

難以理解如何訪問iron-list的selectedItems屬性。當綁定到父項的屬性時,我可以使用模板輸出其內容,但觀察者或計算綁定在更改時不會觸發,我似乎無法輸出它的內容。更改時訪問<iron-list>的所選項目

如果有人可以指出我做錯了什麼,我如何讀取selectedItems的邏輯,或者我如何觀察iron-list selectedItems屬性的變化,我將非常感謝知道如何。謝謝。

下面是一些示例代碼,以顯示我如何使用鐵列表selectedItems屬性:

<dom-module id="example-component"> 

<template> 
     <iron-list 
      id="dataList" 
      items="[[data]]" 
      as="item" 
      multi-selection 
      selection-enabled 
      selected-items="{{selectedItems}}"> 
      <template> 
       <span>[[item.data]]</span> 
      </template> 
     </iron-list> 
     <template is="dom-repeat" items="[[selectedItems]]" index-as="index"> 
      <div>[[item.data]]</div> <!-- this displays any selected item --> 
     </template> 
</template> 

<script> 
    Polymer({ 
     is: 'example-component', 
     properties: { 
      data: { 
       type: Array, 
       value: [ 
        { 
         'data': "item 0" 
        }, 
        { 
         'data': "item 1" 
        } 
       ] 
      }, 
      selectedItems: 
      { 
       type: Object, 
       observer: '_selectedItemsChanged' 
      } 
     }, 
     _selectedItemsChanged: function(){ 
      console.log(this.selectedItems); //this neither runs nor outputs anything when an item is selected 
     } 
    }); 
</script> 

回答

3

docs

最後,觀察突變數組(由調用push,pop,shift,unshift和splice引起的更改(通常稱爲「拼接」))指定數組的路徑,後跟.splices作爲觀察者函數的參數離子。

因此,除去selectedItems財產和添加手動觀察者,像這樣:

observers: [ 
'_selectedItemsChanged(selectedItems.splices)' 
], 
+0

RTFM,是嗎?感謝您幫助我在文檔中找到它。 – antibrian