是否可以将 Google Closure 模板与 Clojurescript 一起使用?
我环顾四周,但没有找到任何有关此的信息。
由于大豆模板被编译为 JavaScript 函数,您应该能够毫无问题地使用它。在这里查看有关如何在 ClojureScript 中使用外部 JavaScript 库的一般说明:
http://lukevanderhart.com/2011/09/30/using-javascript-and-clojurescript.html
您还应该使用此标志编译您的模板:--shouldProvideRequireSoyNamespaces
,查看此处了解更多信息。
作为另一种选择,您可以使用为 ClojureScript 编写的模板库。至少有两个很棒的库:Dommy和Enfocus。
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 示例就是一个很好的例子。