如何 return 作为 list/vector 打嗝
How to return hiccup as a list/vector
我将 hiccup 向量传递给一个函数,该函数只是将它包装在更多 hiccup 中,但它并不像我期望的那样 return。
这是我的意思的一个例子:
(defn wrap-fn
[input]
[div.content-box
[input]])
(defn main-fn
[vector-of-hiccup]
(foreach [hiccup from vector-of-hiccup]
(wrap-fn hiccup-from-list)))
如何实现上面的 foreach 循环?
我尝试使用 'apply' 将 wrap-fn 应用到每个矢量参数,但它只 return 包裹了第一个元素。我已经尝试创建各种循环,并且取得了类似的成功。
我确定有办法做到这一点,请帮我找到一个可行的方法。
你需要这样的东西:
(defn wrap-fn
[input]
[:div.content-box
[input]]) ; <= you may not want to wrap `input` in a vector.
(defn main-fn
[vector-of-hiccup]
(vec
(for [item vector-of-hiccup]
(wrap-fn item))))
注意 :div
中的 :
。打嗝向量总是以关键字开头。此外,由于 for
returns 是一个惰性序列,您应该将其转换为带有 vec
.
的向量
此外,根据您的情况,您可能希望在 :div.content-box
下使用 input
而不是 [input]
。
请参阅 the Documentation section of the clj-template 项目以获取有价值的学习信息。
我将 hiccup 向量传递给一个函数,该函数只是将它包装在更多 hiccup 中,但它并不像我期望的那样 return。
这是我的意思的一个例子:
(defn wrap-fn
[input]
[div.content-box
[input]])
(defn main-fn
[vector-of-hiccup]
(foreach [hiccup from vector-of-hiccup]
(wrap-fn hiccup-from-list)))
如何实现上面的 foreach 循环?
我尝试使用 'apply' 将 wrap-fn 应用到每个矢量参数,但它只 return 包裹了第一个元素。我已经尝试创建各种循环,并且取得了类似的成功。
我确定有办法做到这一点,请帮我找到一个可行的方法。
你需要这样的东西:
(defn wrap-fn
[input]
[:div.content-box
[input]]) ; <= you may not want to wrap `input` in a vector.
(defn main-fn
[vector-of-hiccup]
(vec
(for [item vector-of-hiccup]
(wrap-fn item))))
注意 :div
中的 :
。打嗝向量总是以关键字开头。此外,由于 for
returns 是一个惰性序列,您应该将其转换为带有 vec
.
此外,根据您的情况,您可能希望在 :div.content-box
下使用 input
而不是 [input]
。
请参阅 the Documentation section of the clj-template 项目以获取有价值的学习信息。