Hyperfiddle/electric (clojure) 如何将新值添加到表中? (以表格形式)

问题描述 投票:0回答:0

我开始学习 Clojure-Hyperfield/Electric 并开始做一些教育项目(很简单,因为不幸的是没有关于前端开发方面、dom 元素和实现等的详细文档,甚至我没有前端开发经验) 当用户输入新值时我需要一些帮助,我希望在表中看到该值。


(e/defn TableApp []
        (e/client
          (let [!userName (atom "")]
            (let [!email (atom "")]
              (dom/input (dom/props {:placeholder "Please write your username..."})
                         (dom/on "keydown" (e/fn [enter]
                                                 (when (= "Enter" (.-key enter))
                                                   (when-some [givenValue (contrib.str/empty->nil (-> enter .-target .-value))]
                                                     (reset! !userName givenValue)
                                                     (set! (.-value dom/node)
                                                           (dom/props {:placeholder (str "Given Username= " givenValue)}))))))
                         )
              (dom/input (dom/props {:placeholder "Please write your email..."})
                         (dom/on "keydown" (e/fn [enter]
                                                 (when (= "Enter" (.-key enter))
                                                   (when-some [givenValue (contrib.str/empty->nil (-> enter .-target .-value))]
                                                     (reset! !email givenValue)
                                                     (set! (.-value dom/node)
                                                           (dom/props {:placeholder (str "Given email= " givenValue)}))))))
                         )


              (dom/table (dom/props {:class "hyperfiddle"})
                         (e/client
                           (dom/tr
                             (dom/td (dom/text (str "Username: " (e/watch !userName))))
                             )
                           (dom/tr
                             (dom/td (dom/text (str "Email: " (e/watch !email))))
                             )
                           )
                         )
              )
            )
          )
        )

当我输入一个值时,我可以在表格中看到它,就像你在这里看到的那样。

在这里,当我输入一个覆盖我的旧变量的值时(我知道我是这样写我的代码的,因为我不知道该怎么做,因为我在这里寻求帮助。(比如表格格式))

最好的方法是什么? (如果可能的话,我想用提交按钮而不是输入来控制值输入,这对我未来的研究来说是一个很好的例子) 非常感谢!

clojure frontend hyperfiddle electric-clojure
© www.soinside.com 2019 - 2024. All rights reserved.