Angular 无限滚动 + deckgrid ng-repeat 渲染卡仅在新获取的数据上
Angular infinite scroll + deckgrid ng-repeat render cards only on newly fetched data
我将 deckgrid 与自定义的无限滚动条结合使用,以在 Angular 中加载连续的照片流,这些照片以砖石布局布置。每次返回的数据集都非常大,我注意到 deckgrid 在数据集上调用 quick-ng-repeat 来生成卡片。 Deckgrid 还在数据集上放置了一个 watchCollection,因此当数据集发生变化时(当用户滚动到底部时通过将数据附加到数据集触发),ng-repeat 将重新呈现数据集中的所有内容(新旧数据都一样) ).
不幸的是,鉴于数据集的大小和我的应用程序必须执行的其他 post 处理,重新渲染每张卡片的成本非常高。我希望能够按原样保留已渲染的卡片,只使用新获取的数据渲染新卡片。换句话说,有没有办法让 ng-repeat 解除对已经渲染过的元素的绑定?
我们必须将 track by $index 添加到 deckgrid 指令中。这只渲染了新的 DOM 元素。
我将 deckgrid 与自定义的无限滚动条结合使用,以在 Angular 中加载连续的照片流,这些照片以砖石布局布置。每次返回的数据集都非常大,我注意到 deckgrid 在数据集上调用 quick-ng-repeat 来生成卡片。 Deckgrid 还在数据集上放置了一个 watchCollection,因此当数据集发生变化时(当用户滚动到底部时通过将数据附加到数据集触发),ng-repeat 将重新呈现数据集中的所有内容(新旧数据都一样) ).
不幸的是,鉴于数据集的大小和我的应用程序必须执行的其他 post 处理,重新渲染每张卡片的成本非常高。我希望能够按原样保留已渲染的卡片,只使用新获取的数据渲染新卡片。换句话说,有没有办法让 ng-repeat 解除对已经渲染过的元素的绑定?
我们必须将 track by $index 添加到 deckgrid 指令中。这只渲染了新的 DOM 元素。