标签: clojurescript

如何在重新框架中循环订阅的集合并将数据显示为列表项?

考虑以下使用幽灵,试剂和重构框架的clojurescript代码,外部React.js网格组件用作视图组件.

在db.cls中:

(def default-db
  {:cats [{:id 0 :data {:text "ROOT" :test 17} :prev nil :par nil}
          {:id 1 :data {:text "Objects" :test 27} :prev nil :par 0}
          {:id 2 :data {:text "Version" :test 37} :prev nil :par 1}
          {:id 3 :data {:text "X1" :test 47} :prev nil :par 2}]})
Run Code Online (Sandbox Code Playgroud)

在subs.cls中

(register-sub
  :cats
  (fn [db]
    (reaction
      (select [ALL :data] (t/tree-visitor (get @db :cats))))))
Run Code Online (Sandbox Code Playgroud)

选择结果:

[{:text "ROOT", :test 17} 
 {:text "Objects", :test 27} 
 {:text "Version", :test 37} 
 {:text "X1", :test 47}]
Run Code Online (Sandbox Code Playgroud)

在views.cls中 …

clojure clojurescript reagent re-frame

9
推荐指数
1
解决办法
1857
查看次数

如何构造一个完全匹配DataScript中refs向量的查询?

设置考虑以下DataScript数据库的电影和演员,数据从learndatalogtoday.org窃取:以下代码可以在JVM/Clojure REPL或ClojureScript REPL中执行,只要project.clj包含[datascript "0.15.0"]作为依赖项.

(ns user
  (:require [datascript.core :as d]))

(def data 
  [["First Blood" ["Sylvester Stallone" "Brian Dennehy" "Richard Crenna"]]
   ["Terminator 2: Judgment Day" ["Linda Hamilton" "Arnold Schwarzenegger" "Edward Furlong" "Robert Patrick"]]
   ["The Terminator" ["Arnold Schwarzenegger" "Linda Hamilton" "Michael Biehn"]]
   ["Rambo III" ["Richard Crenna" "Sylvester Stallone" "Marc de Jonge"]]
   ["Predator 2" ["Gary Busey" "Danny Glover" "Ruben Blades"]]
   ["Lethal Weapon" ["Gary Busey" "Mel Gibson" "Danny Glover"]]
   ["Lethal Weapon 2" ["Mel Gibson" "Joe Pesci" "Danny …
Run Code Online (Sandbox Code Playgroud)

clojure datalog clojurescript datomic datascript

9
推荐指数
1
解决办法
284
查看次数

在clojure中定义我自己的阅读器宏

我想在clojure中定义自己的阅读器宏:

(read-string "ßfoo")
=> (some_func :foo)
Run Code Online (Sandbox Code Playgroud)

可能吗?

clojure clojurescript

8
推荐指数
1
解决办法
1270
查看次数

在ClojureScript中,如何显示带有2位小数的浮点数?

我试过使用with-precision但它不起作用:

(.log js/console (with-precision 2 1.2345)) 
Run Code Online (Sandbox Code Playgroud)

所以我用过toFixed:

(.log js/console (.toFixed 1.2345 2)) 
Run Code Online (Sandbox Code Playgroud)

但我觉得这不是那种惯用的做法.

另外,我不明白为什么with-precision不起作用.

请激励我......

clojurescript

8
推荐指数
2
解决办法
4281
查看次数

如何正确(单元)测试Om/React组件?

我已经开发了Om/React组件,但是我觉得不能用单元测试来驱动我的开发.我试图设置我的clojurescript项目来对这些组件运行单元测试,到目前为止我已经达到了能够编写单元测试并实例化我的组件的程度.我缺少的是能够确保我的组件对某些事件做出正确反应,例如,onChange以便我可以模拟用户输入.

这是我的测试代码:

(defn simulate-click-event
  "From https://github.com/levand/domina/blob/master/test/cljs/domina/test.cljs"
  [el]
  (let [document (.-document js/window)]
    (cond
     (.-click el) (.click el)
     (.-createEvent document) (let [e (.createEvent document "MouseEvents")]
                                (.initMouseEvent e "click" true true
                                                 js/window 0 0 0 0 0
                                                 false false false false 0 nil)
                                (.dispatchEvent el e))
     :default (throw "Unable to simulate click event"))))

(defn simulate-change-event
  "From https://github.com/levand/domina/blob/master/test/cljs/domina/test.cljs"
  [el]
  (let [document (.-document js/window)]
    (cond
     (.-onChange el) (do (print "firing on change on "  el) (.onChange el))
     (.-createEvent document) (let [e (.createEvent document …
Run Code Online (Sandbox Code Playgroud)

unit-testing clojurescript reactjs om

8
推荐指数
1
解决办法
752
查看次数

我如何使用Clojurescript cljs.core.PersistentQueue队列?

我似乎无法在Clojurescript cljs.core.PersistentQueue上找到任何文档.我应该使用它吗?或者我应该使用另一种制作Clojurescript队列的方法?

更新

与此同时,我正在使用频道,(<!, (>!并使用块,这似乎可以解决问题

clojurescript

8
推荐指数
2
解决办法
1158
查看次数

惯用语Clojure功能别名

在Clojure中对函数进行别名的最惯用方法是什么?这两种方法在执行方面有什么不同吗?

Om获取的示例(Clojurescript,但Clojure中的语法将是相同的):

(defn query->ast
  "Given a query expression convert it into an AST."
  [query-expr]
  (parser/query->ast query-expr))

(def query->ast
  "Given a query expression convert it into an AST."
  parser/query->ast)
Run Code Online (Sandbox Code Playgroud)

idioms clojure clojurescript

8
推荐指数
1
解决办法
376
查看次数

如何在Corsjurescript的Cursive中设置配置?

如何创建一个新项目?如何编译,测试和运行?

由于草书用户指南没有提及cljs.

clojurescript cursive

8
推荐指数
1
解决办法
2049
查看次数

在Clojure中声明匿名函数是否昂贵?

作为Clojure程序员,我们使用大量匿名函数而不考虑它的成本.

在clojure中创建和使用匿名函数的相对成本是多少?

lisp functional-programming clojure clojurescript

8
推荐指数
1
解决办法
213
查看次数

Google Chart CLJS Clojure

我尝试在Google Chart中调整此示例.到re-frame框架,reagent.我想基于订阅创建一个实时图表.我用一个简单的计数器= + - 1测试.

我收到了错误: Assert failed: Render must be a function, not nil (ifn? render-fun).

(defn draw-demo-chart 
   [d]
   (let [[columns vectors options chart] (r/children d)
         data (new js/google.visualization.DataTable)]
       (doall ;gotta keep the doall on maps. lazy sequence...
      (map (fn [[type name]]
            (.addColumn data type name)) columns))
      (.addRows data vectors)
      (.draw chart data options)
      (.load js/google "visualization" "1" (clj->js {:packages ["corechart" "orgchart" "calendar" "map" "geochart"]}))     
      (.setOnLoadCallback js/google draw-demo-chart)
      ))


(defn draw-demo-chart-container
    [] …
Run Code Online (Sandbox Code Playgroud)

clojure clojurescript reagent re-frame

8
推荐指数
1
解决办法
426
查看次数