4

我正在尝试使用 clojure.browser.dom 生成以下 HTML 片段,但它看起来与打嗝不同,

<div data-role="controlgroup">
<a href="index.html" data-role="button">Yes</a>
<a href="index.html" data-role="button">No</a>
<a href="index.html" data-role="button">Maybe</a>
</div>

生成 HTML 元素的正确表示法是什么?使用,

[:div {:data-role "controlgroup"} ...]

不生成,

<div data-role="controlgroup">
4

3 回答 3

5

还可以看看dommy,它本质上是 murtaza52 建议的 crate 的优化版本(打嗝的 cljs 版本)。

于 2013-01-28T12:26:04.247 回答
4

看看 crate - https://github.com/ibdknox/crate - 它是 cljs 的一个端口。

另请查看 enfocus ,它是 enlive 的实现 - https://github.com/cgrand/enlive

于 2012-09-18T17:45:16.370 回答
1

在https://github.com/flurfunk/flurfunk-web上查看 Flurfunk 的 Web 前端。他们似乎已经推出了自己的 ClojureScript 库来生成 html,并且界面在本质上看起来类似于打嗝。

这是来自https://github.com/flurfunk/flurfunk-web/blob/master/src/cljs/flurfunk/web/core.cljs的片段:

(ns flurfunk.web.core
  (:require [flurfunk.web.dom-helpers :as dom]))
(defn- create-dom []
  (dom/build [:div#content
               [:h1
                 [:a {:href "http://flurfunk.github.com"} title]]
               [:div#messages
                 [:div#message-input
                   [:div
                     [:label "Your name:"]
                     [:input#author-name-input {:type "text"}]]
                   [:textarea#message-textarea]
                   [:button#send-button "Send message"]
                   [:div#waiting-indication]]
                 [:div#hidden-channels
                   [:label "Hidden channels:"]
                   [:ul#hidden-channel-list]]
                 [:div#message-list]]
               [:button#load-more-button "Load more messages"]]))
于 2012-09-17T21:58:09.273 回答