首页 > 解决方案 > CableReady 频道的 insert_adjacent_html 的反面?

问题描述

问题已得到解答 - 请参阅下面的帖子

我有一个 CableReady 频道“当前”,它动态显示“帖子”的提要。我可以让帖子单独出现就好了,但我不知道如何单独从频道中删除它们。

这个 Posts 到通道的输入是在 PostsController.rb 中控制的,如下所示:

def postshow
  @post = Post.find(params[:id])
  cable_ready["current"].insert_adjacent_html(
    selector: "#current#{@video.id}",
    position: "afterbegin",
    html: render_to_string(partial: "posts/post", locals: {post: @post})
  )
  cable_ready.broadcast
end

我尝试了一种remove方法,例如cable_ready["current"].remove(... ,但这只会一次性删除频道中的所有帖子

我计划在我的 PostsController.rb 中使用另一种方法来执行删除:

def postremove
  @post = Post.find(params[:id]
  ...[code to remove the post here]
end

我不想完全从 DOM 中删除帖子,因为提要是动态的,我希望它们能够在某个时候再次显示在提要中。

编辑:对通缉行为的进一步解释

想象提要像 twitter,新帖子出现在顶部。但是这些帖子只会出现一定的秒数。您还可以将提要倒回到某个点。因此,如果您倒带时间,从提要中删除的帖子可能会再次出现在顶部。

感谢您对其他策略的任何想法或建议,谢谢

标签: ruby-on-railsactioncablestimulusjsstimulus-reflex

解决方案


由于您不想从 DOM 中删除帖子,因此一种解决方案可能是简单地隐藏帖子。您可以使用下面的方法来设置 CSS 属性。 在此处输入图像描述 或者,如果您使用 CSS 框架,您可以通过以下方式添加一个类: 在此处输入图像描述


推荐阅读