问题标签 [clojurescript]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4026 浏览

clojure - 哪些 IDE、编辑器和工具可用于 ClojureScript 开发?

ClojureScript 的第一次发布已经过去一年了。我没有在生产中使用 ClojureScript,但正在考虑在即将到来的项目中使用该技术。ClojureScript 的 IDE 和工具支持的当前状态是什么。以下是 IDE、编辑器和工具,我知道:

此列表中可能缺少几个项目或工具。我还没有看到与主要 IDE 之一的任何集成,我可以想象大多数从事 ClojureScript 工作的人都在使用 Emacs。我很喜欢使用 Emacs,但并不是每个开发人员都会喜欢使用 Emacs。此列表中是否缺少任何工具或 IDE 扩展,甚至可能是在大型项目中使用过的工具?

0 投票
3 回答
1119 浏览

xml - clojurescript:使用 xml?

我的 Clojurescript 应用程序需要处理基于 XML 的 API。我知道大多数透明的远程处理解决方案,如fetch,但它们似乎要求两端都用 Clojure 编写(即 fetch 似乎是一个 noir/clojurescript 解决方案)。

使用 Clojurescript 使用 XML API 的“正确方法”是什么?

我只是满足于能够将 XML 片段翻译成嵌套的 Clojure 数据结构(嵌套向量),打嗝式,但一个好的处理 API 将不胜感激(unify可能像 C2 的东西?)

0 投票
4 回答
753 浏览

scala - 有像 Clojurescript 这样的 Scala 吗?又名集成 Scala 单页应用程序

所以ClojureScript One看起来相当不可思议!您可以使用您的 REPL 实时更新SPA

因此,在没有 REPL 的 Java 中,这样的事情是相当不可能的,但在像 Groovy 或 Scala 这样的东西中似乎很有可能。我有点像 Lisp 的偏执狂(我真的不应该这样,但哦,好吧),想知道是否有像 Clojurescript 这样的 Scala 或 Groovy?

更新: 理论上它看起来可以将 Scala/Groovy 包裹在 Java 的ItsNat周围。但是我对那个项目有些怀疑,因为它自 2011 年以来就没有更新过(他们也有他们最丑陋的网站……就像他们试图让它变得丑陋一样)。许可证也相当严格。

0 投票
2 回答
14854 浏览

drag-and-drop - 嵌入式 SVG 中的拖放事件?

是否有可能从网页中的 SVG 元素接收拖放事件?

我尝试了 Google Closure 库,但无济于事。

具体来说,假设我的页面包含

我的脚本包含(Clojurescript/C2)

然后我确实得到了一个拖动图像(幽灵),虽然我没有设法接收拖动事件,例如通过做

对 SVG 元素使用类似的代码,我什至没有得到一个幽灵......

有什么提示吗?

谢谢

0 投票
1 回答
1425 浏览

clojurescript - 您如何从 clojurescript 引用 javascript 的 this 关键字?

我正在将一些 ClojureScript 代码与带有回调函数的 JS 库调用集成。JS 库使用 JavsScript 的“this”关键字将数据传递给回调。

我可以使用 (js* "this") 让它工作。例如:

有没有办法从 ClojureScript 中获取“this”上下文而不求助于 js*?

0 投票
2 回答
1229 浏览

clojure - 如何使用 clojurescript repl 评估宏

一旦浏览器连接到 clojurescript repl,我以前无法从 repl 调用宏。这是一个过去让我放弃 clojurescript 的问题,我更喜欢直接使用 javascript。基本上,我觉得 cljs-repl 有点蹩脚,我又回到了编译/调试周期,在 clojure 中编写代码应该让我们从中解放出来。

在 clojurescript 中推送和测试代码是否有任何好的解决方法/工作流程?特别是如果可以评估宏?

我的问题的一个例子是:

  1. 创建一个新的 cljs 项目

    lein new cljs-template 等等

  2. 启动服务器

    光盘等等

    来跑

  3. 运行 web-repl

    lein trampoline cljsbuild repl-listen

  4. 有一个src/blah/client/main.cljs带有标题的文件

注意线(:use-macros [crate.macros :only [defpartial]])

我不能defpartial在浏览器 repl 中使用,因为它是一个宏。我得到的错误是:

现在defpartial 是一个非常有用的宏,如果没有它,它会很麻烦。

当我想在项目中定义另一个宏时,我的问题变得更糟了:use-macros。我根本无法调试我在 repl 或浏览器中写的内容,大约半天后,我发现使用 clj repl 更快,使用 macroexpand 测试宏,然后将结果复制回浏览器复制 大约一天后,我得到了一个 cljs 宏,它不是很有趣。这是大约 6 个月前的事了。我希望现在有一种更快的方法可以做到这一点。

0 投票
2 回答
996 浏览

javascript - 如何在javascript中使用来自clojurescript的复杂返回对象

我想编写一个 clojurescript 函数,它返回一个复杂的项目,如 ["foo" "bar"] 或 (list "foo" "bar"),我希望能够从 javascript 调用此函数并获取部分返回值。如何做呢?在我的例子中,我返回的向量/列表/集合中的项目数是预先知道的,并且集合应该保持有序。

这是我的 clojurescript 函数。如果它让事情变得更容易,我可以在这里做一些不同的事情。只是不知道那会是什么。

这是它编译为 javascript 后的样子。这部分完全由前一段代码确定/生成。要在此处进行更改,我必须知道如何调整 clojurescript 中的前一部分。

当我在 javascript 中执行以下操作时,我看到一个警报框弹出 ["foo" "bar"]

但是,如果我尝试以下操作,警报会显示“未定义”而不是“foo”。

我应该怎么做才能让警报显示“foo”?(嗯。我想我可以编写更多的 clojurescript 来使用该值,并查看它在编译为 javascript 时如何显示......)

0 投票
2 回答
556 浏览

clojure - 在 ClojureScript One 项目中使用 clojure.browser.event.unlisten

我正在尝试编写一个 clojureScript One 项目,但在删除事件侦听器(未侦听)时遇到问题 - 侦听器已使用以下代码注册:

但是当我尝试用这段代码不听时:

代码运行没有错误,但监听器没有被删除,我想我有一个语法错误,但我不确定在哪里。

任何帮助将不胜感激。谢谢拉里

0 投票
1 回答
1370 浏览

clojure - ClojureScript:如何通过原型向 JS 对象添加方法?

我正在尝试向现有的 JavaScript 系统添加一些功能。然后再次从 JavaScript 中使用(而不是在 ClojureScript 命名空间中)。也许这是不可能的?

这是我想要做的简化:

我希望能够在上面运行我的脚本,然后从代码的其他地方调用它。

我试过弄乱extend-typeand defprotocol,以及export,但似乎没有任何东西暴露我的 foo 函数。

这可能是一个设计决定,而 ClojureScript 在这里对我不起作用,但我只是想确保我没有忽略某些东西。

0 投票
3 回答
1905 浏览

clojure - 使用 ClojureScript 生成 HTML

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

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

不生成,