使用Clojurescript的Closure模板

时间:2013-04-26 11:33:28

标签: clojurescript

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

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

2 个答案:

答案 0 :(得分:2)

由于Soy Templates被编译为JavaScript函数,您应该可以毫无问题地使用它。在这里查看如何在ClojureScript中使用外部JavaScript库的一般说明:

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

您还应使用此标记编译模板:--shouldProvideRequireSoyNamespaces,查看here以获取更多信息。

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

答案 1 :(得分: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 sample就是一个很好的例子。