使用闭包模板与Clojurescript

4

是否可以在Clojurescript中使用Google Closure Templates?

我搜索过但没有找到相关信息。

2个回答

2

由于Soy模板被编译成JavaScript函数,因此您应该能够毫无问题地使用它。请查看这里以获取有关如何在ClojureScript中使用外部JavaScript库的通用说明:

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

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

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


很遗憾,Dommy不能在Lighttable上使用,否则我会使用它。 - yazzapps.com

1
谷歌闭包模板应该可以在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示例很好地展示了这一点。


我查看了TwitterBuzz中的链接。哪些文件是模板文件,我应该查看? - yazzapps.com
抱歉,我完全误解了问题。如果您正在尝试使用Google Closure进行soy模板,则有一个较旧的Clojure库(https://github.com/levand/clj-soy)。我不知道如何在cljs中实现这一点,但是有一个示例页面(https://developers.google.com/closure/templates/docs/javascript_usage),介绍了使用JavaScript进行模板化的内容,可能会有所帮助。 - greenyouse
啊,很棒的库,谢谢。如果你误解了问题也没关系,我已经给你的答案点赞了。 - yazzapps.com

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接