【发布时间】:2014-08-06 23:59:53
【问题描述】:
我有一个联系人集合,我使用collection-repeat 为每个联系人生成一个ion-item。每个 ion-item 都有一个跨度、一个段落和一个复选框元素。我选择使用 collection-repeat 而不是 ng-repeat,因为它可以提高性能。
我了解collection-repeat 一次只渲染适合屏幕的项目,并在我们滚动时渲染更多。
我遇到的问题是,当我单击项目中的复选框(例如,第一个复选框)并向下滚动以查看更多列表时,列表中较低项目中的另一个复选框也会被自动选中。这不是预期的行为,因为我希望用户能够检查每个项目的复选框。
这些图片会让解释更清楚:
为什么我的列表会显示这种行为?它与收集重复的工作方式有关还是我的代码有问题?这真的让我很生气,我需要找到答案。谢谢!
【问题讨论】:
-
我对收集重复知之甚少,但根据我的经验,这个问题在列表视图中很常见,无论实现如何。通常它是由视图重用组件引起的 - 在这种情况下,它看起来像是重用了第一个项目。如果可能,请尝试在首次创建项目时清除所有值。