用朗姆酒渲染评论树

时间:2018-12-01 14:46:02

标签: clojurescript rum

(def posts (atom [{:id 77
                   :contents "Seventy seven is the nicest number below one hundred"
                   :author "nonforum@nonforum.com"
                   :comments [ 33 44 55]}
                  {:id 33
                   :contents "Thirty three is awesome."
                   :author "monforum@nonforum.com"
                   :comments [34 35]}]))

说我有一个包含上述帖子的原子。 我想动态呈现一个缩进的parent> child列表,该列表呈现评论。

给出一个帖子:id,例如77,我如何在一个漂亮的缩进树中渲染该帖子及其所有注释?

(filter  #(= 33 (:id %)) @posts)

将返回({:id 33, :contents "Thirty three is awesome.", :author "monforum@nonforum.com", :comments [34 35]})

然后我可以获取嵌套的注释ID ...

(:comments (first (filter #(= 33 (:id %)) @posts)))
返回[34 35]

因此,既然我知道comment-id 34和comment-id 35映射是评论集的一部分,我该如何再次返回以获得详尽的子评论集?

我幼稚的想法是创建一个队列,将项目添加到队列中,然后将它们从数据结构[atom]中拉出,但是必须有一种更简洁,实用的方法来获得我想要的东西。

0 个答案:

没有答案