我正在根据流星服务器上的集合呈现元素列表。
使用#each块呈现元素,该块从辅助方法填充,该方法返回作为查找查询结果的游标。为了根据数据的某些属性对列表进行排序,我运行一个带有不同排序选项的新查找。
这很好用,列表按所需顺序呈现。问题是流星正在重新渲染每个元素。
现在我有两个问题: 1)元素可以包含正在播放的嵌入视频。当流星重新渲染元素时,这会被重置 2)我希望有一些css过渡动画重新定位元素。因为流星重新渲染了dom中的每个元素,所以css过渡不起作用。
我能够使用常量块解决问题#1,但问题#2仍然是个谜。我可以在不依赖流星的情况下完成所有的排序和过滤客户端,但这看起来很笨拙。
有没有什么方法可以让流星重新定位dom中的元素而不是删除和读取它们?
在renderList的文档中我找到了这个(这使得它看起来像meteor至少在理论上可以做我想要的):
renderList比使用Meteor.render为文档列表呈现HTML更有效。例如,如果在数据库中创建与查询匹配的新文档,则将呈现新项目并将其插入DOM中的适当位置,而无需重新呈现其他元素。同样,如果文档在已排序的查询中更改位置,则只会移动DOM节点而不会重新呈现。