ユーザーが投稿したコメントのリアクティブ {{#each}} で新しい要素をフェードインしようとしています。
https://gist.github.com/3119147に非常に単純なコメント セクションのコード サンプルがあります(テキストエリアと新しいコメント挿入コードは含まれていませんが、非常にボイラープレートです)。私が与えるCSSのスニペットが含まれ.comment.fresh { opacity: 0; }
ており、スクリプトには次のものがあります。
Template.individual_comment.postedago_str = function() {
var id = this._id;
Meteor.defer(function() {
$('#commentid_'+id+'.fresh').animate({'opacity':'1'}, function() {
$(this).removeClass('fresh');
});
});
return new Date(this.time).toString();
};
アニメーションを実行するにはひどい場所のようです。私の考えでは、新しいコメントがレンダリングされるたびに、すべてのTemplate.individual_comment.*
関数を呼び出す必要があるため、アニメーションはそれらのいずれかを延期します。ただし、Meteor は、異なるコレクション (Likes) が挿入されるTemplate.individual_comment.postedago_str()
たびに呼び出しています。これは、[いいね] ボタンをクリックすると、コメントのリスト全体が白く点滅してフェードインすることを意味します (非常に面倒です!)。
Meteor のドキュメントを読み、チャンクのみが更新されるようにテンプレートをより適切にスライスする方法を見つけようとしました。妥当と思われるすべての場所に id="" 属性を追加しましたが、それでもこのバグです。何が起こっているか知っている人はいますか?
ティア!