3

我正在根据流星服务器上的集合呈现元素列表。

这些元素是使用 #each 块呈现的,该块是从一个辅助方法填充的,该方法返回一个游标,该游标是查找查询的结果。为了根据其数据的某些属性对列表进行排序,我使用不同的排序选项运行了一个新的查找。

这工作正常,列表以所需的顺序呈现。问题是流星正在重新渲染每个元素。

现在我有两个问题:1)元素可以包含正在播放的嵌入式视频。当流星重新渲染元素时,它会被重置 2)我想让一些 CSS 过渡动画元素的重新定位。由于流星会重新渲染 dom 中的每个元素,因此 css 转换不起作用。

我可以部分地使用常量块解决问题 #1,但问题 #2 仍然是个谜。我可以在不依赖流星的情况下完成所有的排序和过滤客户端,但这似乎很笨拙。

有什么方法可以让流星重新定位dom中的元素而不是删除和读取它们?

在 renderList 的文档中我发现了这个(这使得流星看起来至少在理论上可以做我想要的):

renderList 比使用 Meteor.render 为文档列表呈现 HTML 更有效。例如,如果在数据库中创建了与查询匹配的新文档,则将呈现新项目并将其插入 DOM 中的适当位置,而无需重新呈现其他元素。类似地,如果文档在排序查询中更改位置,则 DOM 节点将被简单地移动而不是重新渲染。

4

0 回答 0