4

是否可以将 Google Closure 模板与 Clojurescript 一起使用?

我环顾四周,但没有找到任何有关此的信息。

4

2 回答 2

2

由于大豆模板被编译为 JavaScript 函数,您应该能够毫无问题地使用它。在这里查看有关如何在 ClojureScript 中使用外部 JavaScript 库的一般说明:

http://lukevanderhart.com/2011/09/30/using-javascript-and-clojurescript.html

您还应该使用此标志编译您的模板:--shouldProvideRequireSoyNamespaces,查看此处了解更多信息。

作为另一种选择,您可以使用为 ClojureScript 编写的模板库。至少有两个很棒的库:DommyEnfocus

于 2013-05-07T04:08:46.230 回答
1

Google Closure 模板应该可以在 ClojureScript 中轻松运行。尝试像往常一样引用 ClojureScript 文件顶部的 goog.whatever 命名空间。如果您没有使用高级模式编译,请在 HTML 页面中使用 goog.require 引用您的 cljs 文件的命名空间。否则,在高级模式下编译时不需要 goog.require。

因此,如果您有一个名为 foo 的项目,一个名为 bar 的 ClojureScript 文件,并且您想在没有高级模式的情况下使用 goog.dom,您可以尝试以下操作:

.cljs 文件

(ns foo.bar
  (:require [goog.dom :as dom]))

在 index.html 中

<script type="text/javascript" src="js/compiled.js"></script>
<script type="text/javascript">
    goog.require('foo.bar'); 
</script>

twitterbuzz 示例就是一个很好的例子。

于 2013-04-27T04:47:35.367 回答