- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在使用 clojurescript/试剂让我的 table 体正确排列时遇到问题。我实际上不确定这是我不了解在 html 中做什么还是什么...
目前我使用循环显示表体
(defn table-body [list-of-maps]
[:tbody
(for [one-map list-of-maps]
[:tbody
[:tr
[:td (:key1 one-map)]
[:td (:key2 one-map)]
[:td (:key3 one-map)]
[:td (:key4 one-map)]
[:td (:key5 one-map)]
[:td (:key6 one-map)]
[:td (:key7 one-map)]]
[:tr
[:td (:key8 one-map)]]])])
问题是我需要在 for 外部和 for 内部使用一些 html 元素进行分组,对吗?如果我在两者上都使用 [:tbody],它将弄乱与 [:thead] 部分的对齐。如果我使用 tbody 以外的元素,则会产生各种其他问题。如果我删除 for 循环中的 [:tbody] 和最后一个 [:tr],一切看起来都很好。
编辑:我目前已经大大缩小了问题的范围。我的应用程序 ajax 获取并取消引用与表相关的数据。在这个重新渲染中,表格的格式被弄乱了。
Edit2:我发现了问题。
(defn test-body [list-of-maps]
[:tbody
(for [one-map @list-of-maps]
[:tbody
[:tr
[:td (:key1 one-map)]
[:td (:key2 one-map)]
[:td (:key3 one-map)]
[:td (:key4 one-map)]
[:td (:key5 one-map)]
[:td (:key6 one-map)]
[:td (:key7 one-map)]]
[:tr
[:td (:key8 one-map)]]])])
(defn test-head []
[:thead
[:th "key1"]
[:th "key2"]
[:th "key3"]
[:th "key4"]
[:th "key5"]
[:th "key6"]
[:th "key7"]])
(defn test55 []
(let [list-of-maps (reagent/atom [])]
(js/setTimeout (fn [] (reset! list-of-maps '({:key1 "a1" :key2 "a2" :key3 "a3" :key4 "a4" :key5 "a5" :key6 "a6" :key7 "a7" :key8 "a8"} {:key1 "b1" :key2 "b2" :key3 "b3" :key4 "b4" :key5 "b5" :key6 "b6" :key7 "b7" :key8 "b8"}))) 3000)
[:table
[test-head]
[test-body list-of-maps]]))
本地图列表重新呈现表格的对齐方式时。
最佳答案
事实证明,这个问题可以通过将事物简单地视为向量来解决。您希望最终结果是什么样的向量?
[:tbody
[:tr
[:td "a1"] [:td "a2"] [:td "a3"] [:td "a4"] [:td "a5"] [:td "a6"] [:td "a7"]]
[:tr
[:td "a8"]]
[:tr
[:td "b1"] [:td "b2"] [:td "b3"] [:td "b4"] [:td "b5"] [:td "b6"] [:td "b7"]]
[:tr
[:td "b8"]]]
因此,以此为目标,我们着手让主体函数创建它。
(defn test-body [list-of-maps]
(into [] (concat [:tbody] (apply concat (for [one-map @list-of-maps]
[
[:tr
[:td (:key1 one-map)]
[:td (:key2 one-map)]
[:td (:key3 one-map)]
[:td (:key4 one-map)]
[:td (:key5 one-map)]
[:td (:key6 one-map)]
[:td (:key7 one-map)]]
[:tr
[:td (:key8 one-map)]]])))))
这是我的解决方案。可能有更好的。
关于html - 在 Clojurescript/Reagent 中有两行的循环表体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30286914/
如何从 clojurescript 程序中获取我所在的 Clojurescript 命名空间?我想这样做确实提供了某些调试信息(它只需要在开发模式下工作) 最佳答案 命名空间在 ClojureScri
我正在考虑使用 ClojureScript 构建一个网站。在客户端和服务器端都编写 ClojureScript 是否有意义,就像 node.js 一样? 最佳答案 这是可能的,但绝对没有理由不在服务器
我正在与Om合作,但我不完全理解以下表达式: (.. e -target -checked) 在这里,“ e”是一个JavaScript事件,“-target -checked”是一种访问属性的方式
我想在 ClojureScript 中前向声明一个函数。种 (defn a [] (b)) ... (defn b [] ...) 我觉得在用法(b)前面放一个(def b nil)是个什么样的作品,
我想在 ClojureScript 中前向声明一个函数。种 (defn a [] (b)) ... (defn b [] ...) 我觉得在用法(b)前面放一个(def b nil)是个什么样的作品,
我不知道像 this 这样的“自托管”clojurescript 实现如何和 this被实现。 但是,鉴于 clojurescript 编译器是用 clojure 编写的并将 clojure 编译为
考虑以下假设的无意义的 ClojureScript 函数: (defn tmp [] (def p 0) (set! p (inc p)) (set! p (inc p)) (set!
我在生产构建部分遇到问题 ClojureScript quickstart .具体来说,当我运行时:java -cp "cljs.jar;src" clojure.main release.clj我得
我正在尝试使用 defmacro在 ClojureScript 中,但出现控制台错误: TypeError: 'undefined' is not an object (evaluating 'crd
我正在寻找一种在 clojureScript 中根据字符串名称调用函数的方法。 就像是: (call "my-fun" args) 欢迎任何帮助 最佳答案 一个应该有效的非常hackish的解决方案:
在 Ubuntu 10.04.1 LTS 上的 FireFox 5.0 中运行的 ClojureScript 程序中,当抛出异常时,我得到一条神秘的线。 '错误:没有为类型对象定义协议(protoco
我正在努力工作 FormidableLabs/radium · GitHub与 reagent-project/reagent · GitHub ,但我已经走到了死胡同。 我能够通过“破解”试剂功能使
是否可以将 Google Closure Templates 与 Clojurescript 一起使用? 我环顾四周,但没有找到任何有关此的信息。 最佳答案 由于 Soy 模板已编译为 JavaScr
我想从 clojurescript 设置 element.style.height 属性,但不幸的是这段代码失败了: (set! (-> (sel1 tr :.ragslide) .-style .-
我正在使用 ClojureScript 编写一些原子(编辑器)包。我遇到了依赖加载问题。 编译后的 ClojureScript 生成如下文件 (main.js): goog.addDependency
我正在为 clojurescript 库编写一些 cljs.test 测试,并且有一些我想加载的 JSON 测试数据。 我不确定我可以使用什么函数来从项目的本地文件加载数据。 我正在使用 lein-d
我有一个从 Leiningen 启动的 ClojureScript 应用程序。我如何在应用程序启动时将环境变量传递给应用程序(可能是它构建时) 最佳答案 有两个构建时间选项: 使用宏 CLJS 宏是
如何在 ClojureScript 中获取时间戳,类似于 Unix 的时间戳,即表示当前时间和日期的单个数字,作为数字。我知道: if (!Date.now) { Date.now = fun
我需要使用 ClojureScript 打开一个新选项卡。 (js/window.open "http://localhost/go/somewhere") 我收到以下错误:未捕获类型错误:windo
我已经阅读了 David Nolen 的基本 Om 教程,但我仍然对应用程序状态和组件本地状态之间的区别感到有些困惑。当引用游标时,它是否也引用了其中之一或两者? 最佳答案 据我了解: 应用程序状态是
我是一名优秀的程序员,十分优秀!