2015-04-13 47 views
0

我需要實現過濾器類型的搜索,如果它們與搜索不匹配,則將核心列表中的項目隱藏起來。我創建了一個表達式返回false被應用到的項目的.hidden類:動態搜索/過濾器核心列表(聚合物0.5)

class = {{ {hidden: !match(model.host, hQuery)} | tokenList }}

的元素是隱藏的,但除非我點擊一個可見行列表中沒有迴流的元素。有沒有辦法強制使用函數調用迴流?

Blank With Filter After Click

回答

1

掙扎的一週後,隱藏列表項是不處理的正確方法。遍歷原始數組,將所有匹配的對象推送到臨時數組,然後用臨時數組替換核心列表的.data數組。性能適用於列出多達10K條記錄。

0

這是我在我的代碼正在做的,和它的作品:

<div style="{{hide_part1}}"> 
...content to show/hide... 
</div> 
.... 

開關它基於路由改變(FLATRON主任):

routeChanged: function(oldValue, newValue) { 

     if ('some_route_1' == this.route) { 

      this.hide_part1  = '' 
      this.hide_part2 = 'display: none;' 

     } else if ('some_route_2' == this.route) { 

      this.hide_part1  = 'display: none;' 
      this.hide_part2 = '' 
     } 
    }, 

還使用核心列表的updateSize(),尤其是scrollToItem(),即返回頂部,這裏有幫助的,我也有與「迴流」問題: https://stackoverflow.com/questions/29432700/polymer-core-list-is-not-rendering-some-of-the-elements

+0

我試着在key-up上調用updateSize(),但它似乎仍然不同步。 – Indolering

+0

每當第一個匹配項目位於當前緩衝區之外時,我遇到了麻煩。 'updateSize'和'scrollTo(0)'(滾動到頂部)沒有幫助,我必須觸發滾動到那個特定的索引項目。我創建了(https://github.com/Polymer/core-list/issues/87)[a Github門票],但現在我能做的最好的檢測是當列表可能在跑道上有更多,然後強制滾動到每個搜索條目的特定項目。 – Indolering