2015-12-28 54 views
2
<dom-module id="page-list"> 
<style include="shared-styles"></style> 
<style> 
iron-list { 
    height: 500px;  
} 
</style> 
<template> 
    <neon-animated-pages id="pages" selected="0"> 
     <neon-animatable><paper-button id="list-button" raised on-tap="_onOK" >List</paper-button></neon-animatable> 
     <neon-animatable> 
      <iron-list id="list" items="[[data]]" as="item"> 
       <template> 
        <div> 
         Name: <span>[[item.name]]</span> 
        </div> 
       </template> 
      </iron-list> 
     </neon-animatable> 
    </neon-animated-pages>      
</template> 
<script> 
    Polymer({ 
     is: "page-list", 
     attached: function() { 
      this.data=[ 
        { 
         index: 0, 
         name: "Liz Grimes" 
        }, 
        { 
         index: 1, 
         name: "Frazier Lara" 
        }, 
        { 
         index: 2, 
         name: "Dora Griffith" 
        }]; 
        this.$.list.fire('resize'); 
     }, 
     behaviors: [ 
      Polymer.NeonAnimatableBehavior 
     ], 
     properties: {     
      data: { 
       type: Array, 
       notify: true 
      } 
     }, 
     _onOK: function (e) { 
      this.$.pages.selected="1"; 
     } 
    }); 
</script> 

聚合物鐵列表顯示不正確,

按下「列表」按鈕後,鐵名單預計將totatlly顯示。不幸的是,結果是顯示了一行「Name:」而沒有其他字符。如果我強制所選頁面爲「1」,<neon-animated-pages id="pages" selected="1">這意味着在瀏覽器的第一次刷新時,將顯示帶有鐵列表的頁面,顯示正確:三行顯示正確的數據。

這個問題似乎與啓動時,帶鐵列表的頁面尚未顯示有關。

任何人都知道如何解決這個問題?

回答

1

我想你需要

  this.set('data', [...]); 

,而不是

  this.data=[...]; 

的數據改變

+0

試過但沒有解決問題 – user3589761

+0

如果用'iron-pages'替換'neon-animated-pages',問題就會消失。 –

+0

我們在'iron-list'內部的'iron-resize'處理程序中添加了一個日誌。處理程序在更改頁面時調用,如果是'iron-pages',而不是'neon-animated-pages'的情況。我們還在'neon-animated-pages'中添加了'on-iron-resize ='handler'',並且在更改頁面時調用處理程序。似乎'鐵調整大小'事件被解僱了,但沒有被'鐵名單'收到。 –