3

meteor サーバーのコレクションに基づいて要素のリストをレンダリングしています。

要素は、検索クエリの結果であるカーソルを返すヘルパー メソッドから入力される #each ブロックを使用してレンダリングされます。データの属性に基づいてリストを並べ替えるために、別の並べ替えオプションを使用して新しい検索を実行します。

これは正常に機能し、リストは目的の順序でレンダリングされます。問題は流星が各要素を再レンダリングしていることです。

現在、2 つの問題があります。1) 要素には、再生中の埋め込みビデオを含めることができます。これは、流星が要素を再レンダリングするときにリセットされます。meteor は dom 内のすべての要素を再レンダリングするため、css トランジションは機能しません。

定数ブロックを使用して問題 #1 を部分的に解決できましたが、問題 #2 は謎のままです。meteor に頼らずにクライアント側ですべての並べ替えとフィルタリングを行うことができましたが、それは不器用に思えます。

meteor が dom 内の要素を削除して再配置する代わりに再配置できる方法はありますか?

renderList のドキュメントで私はこれを見つけました (これにより、流星は少なくとも理論的には私が望むことを行うことができるように見えます):

renderList は、Meteor.render を使用してドキュメントのリストの HTML をレンダリングするよりも効率的です。たとえば、クエリに一致する新しいドキュメントがデータベースに作成された場合、新しいアイテムがレンダリングされ、他の要素を再レンダリングすることなく DOM の適切な場所に挿入されます。同様に、並べ替えられたクエリでドキュメントの位置が変更された場合、DOM ノードは単純に移動され、再レンダリングされません。

4

0 に答える 0