Polymer 聚合物1.0+;铁名单加载隐藏的名单项目?

Polymer 聚合物1.0+;铁名单加载隐藏的名单项目?,polymer,polymer-1.0,paper-elements,Polymer,Polymer 1.0,Paper Elements,polymer的iron list元素加载一堆未使用/隐藏的列表项是否正常,即使它实际上只向其items属性传递了少得多的数组项 我有一个铁名单,目前是通过一个数组4项长,但提供了屏幕房地产更长的列表,如果需要的话。然而,当我检查Chrome中呈现的iron list元素时,其“items”div中有4个可见项和16个隐藏项。我想这可能与准备滚动/分页列表有关?如果是这样的话,有没有一种方法可以防止铁名单完成所有准备较小数组不需要的项模板的工作 我注意到在我的应用程序的其他地方也出现了类似的情况

polymer的iron list元素加载一堆未使用/隐藏的列表项是否正常,即使它实际上只向其
items
属性传递了少得多的数组项

我有一个铁名单,目前是通过一个数组4项长,但提供了屏幕房地产更长的列表,如果需要的话。然而,当我检查Chrome中呈现的iron list元素时,其“items”div中有4个可见项和16个隐藏项。我想这可能与准备滚动/分页列表有关?如果是这样的话,有没有一种方法可以防止铁名单完成所有准备较小数组不需要的项模板的工作

我注意到在我的应用程序的其他地方也出现了类似的情况,其中一个铁名单提供了一个长度为1的数组。在这种情况下,这确实是有问题的,因为此列表的项模板包含一个更复杂的自定义元素,然后将其“准备”20次而不是一次。这确实会对应用程序的加载时间/性能产生巨大影响

希望这里有一个简单的解决方案,我不必重新考虑我在这个应用程序中使用铁名单。也许我做错了什么。谢谢


似乎也有人在GitHub上提出了这个问题:

是的,这是正确的行为。而不是创建或删除DOM元素
iron list
循环使用单元格以在移动设备上平滑滚动。因此,默认情况下,它将始终生成20个项目,而不管数据量是数十个还是数千个项目。这解释了更多关于黄油平滑滚动的内容

有两件事可以尝试:

  • 我会让你的铁名单
    内容深入一层。(不要在这里嵌套标签,只使用绝对最小数量的元素。你也可以尝试绝对CSS定位)
  • 如果模板行非常大,可以尝试使用iron list private
    \u physicalCount
    属性减少此默认值
  • 铁名单示例:

    var list = this.querySelector("iron-list");
    list._physicalCount = 4; // default is 20
    

    实际上,对于已知的固定长度的项数组,尤其是较短长度的项数组,最好使用dom重复模板。因此,在我上面的例子中,铁名单被误用了(至少是为了它的预期目的)。请参阅相关GitHub问题和建议:


    @deadlyfingers,请参阅有关此GitHub问题的新评论()。原来我可能是误用了铁名单。对于已知的、固定长度的项数组(特别是较短长度的数组),最好使用dom重复模板。