我有一个包含大约500个条目的铁列表元素,并且实现了一个过滤器函数(就像How to filter an iron-list in polymer 1.0?中的那个)。显示和过滤项的效果很好,除非我的筛选器受到太大限制:在这种情况下,会显示一些项与当前的筛选器不匹配,但与前面的筛选器匹配。据我所知,当铁列表中的项目数量减少时,已经创建的显示(虚拟)项目不会被删除。
例如:条目{A、B、C、D、E、F、G、H、I}匹配过滤器X。铁列表元素有5个虚拟元素(简化标记):
<iron-list>
<div>A</div>
<div>B</div>
<div>C</div>
<div>D</div>
<div>E</div>
</iron-list>然后,我将过滤器更改为Y,只使用H和I作为匹配项:更新后的标记如下所示:
<iron-list>
<div>H</div>
<div>I</div>
<div>C</div>
<div>D</div>
<div>E</div>
</iron-list>我只期望铁列表中只有两个div元素,但它似乎保持了一定数量的虚拟化项。我试图通过调用notifyResize()和其他方法(参见https://www.webcomponents.org/element/PolymerElements/iron-list/elements/iron-list)来更新元素,但没有效果。
除了手动删除多余的虚拟元素之外,还有什么想法吗?
发布于 2017-10-31 11:52:35
显然,铁列表为不应该可见的虚拟元素添加了一个“隐藏”属性--这一点我以前没有注意到。
因此,添加CSS指令如下
#list .item[hidden] { display: none; }解决了上述问题。
发布于 2017-10-30 08:40:25
除了手动删除数组或使用notifyResize之外,我不认为还有其他选项。显然我会选第二个。
在没有看到您的代码的情况下,我不知道为什么它不适用于您,但是here使用notifyResize的情况类似。
https://stackoverflow.com/questions/47009221
复制相似问题