我需要实现过滤器类型的搜索,如果它们与搜索不匹配,则将核心列表中的项目隐藏起来。我创建了一个表达式返回false被应用到的项目的.hidden类:动态搜索/过滤器核心列表(聚合物0.5)
class = {{ {hidden: !match(model.host, hQuery)} | tokenList }}
的元素是隐藏的,但除非我点击一个可见行列表中没有回流的元素。有没有办法强制使用函数调用回流?
我需要实现过滤器类型的搜索,如果它们与搜索不匹配,则将核心列表中的项目隐藏起来。我创建了一个表达式返回false被应用到的项目的.hidden类:动态搜索/过滤器核心列表(聚合物0.5)
class = {{ {hidden: !match(model.host, hQuery)} | tokenList }}
的元素是隐藏的,但除非我点击一个可见行列表中没有回流的元素。有没有办法强制使用函数调用回流?
挣扎的一周后,隐藏列表项是不处理的正确方法。遍历原始数组,将所有匹配的对象推送到临时数组,然后用临时数组替换核心列表的.data
数组。性能适用于列出多达10K条记录。
这是我在我的代码正在做的,和它的作品:
<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
我试着在key-up上调用updateSize(),但它似乎仍然不同步。 – Indolering
每当第一个匹配项目位于当前缓冲区之外时,我遇到了麻烦。 'updateSize'和'scrollTo(0)'(滚动到顶部)没有帮助,我必须触发滚动到那个特定的索引项目。我创建了(https://github.com/Polymer/core-list/issues/87)[a Github门票],但现在我能做的最好的检测是当列表可能在跑道上有更多,然后强制滚动到每个搜索条目的特定项目。 – Indolering