我有现有的HTML文件(只是原始的HTML,没有变量或任何东西)我想用作clojurescript项目的部分(这些HTML文件是导航,页脚等).我想在clojurescript项目中要求这些HTML模板,然后在编译的Js中内联模板,这样我就不必对生产中的模板进行任何AJAX调用或者通过HTML文件进行复制以使其可用于生产中的客户.像requireJs和browserify这样的项目有插件让你只需要’HTML文件 – 是否有一个与clojurescript相同的东西?
我知道要进行模板/ dom *** 作的库,所以这不是问题.它只是将多个外部HTML文件转换为内联字符串/ dom节点/生产Js中包含的内容.
谢谢
解决方法@H_301_17@ 您可以使用在编译时执行的宏来执行此 *** 作.project.clj
:dependencIEs [[org.clojure/clojure "1.6.0"] [org.clojure/clojurescript "0.0-2202"]] :source-paths ["src"] :clJsbuild {:builds [{:ID "main" :source-paths ["src/clJs"] :compiler { :output-to "resources/main.Js" :optimizations :whitespace :pretty-print true}}]})
SRC / cljstemplates / core.clj
(ns cljstemplates.core (:require [clojure.java.io :refer (resource)]))(defmacro deftmpl "Read template from file in resources/" [symbol-name HTML-name] (let [content (slurp (resource HTML-name))] `(def ~symbol-name ~content)))
SRC / clJs / web.clJs
(ns cljstemplates.web (:require-macros [cljstemplates.core :refer [deftmpl]]))(deftmpl head "header.HTML")(deftmpl nav "nav.HTML")(deftmpl foot "footer.HTML")
这将生成包含从资源/文件夹中的文件读取的字符串的vars head,nav,foot.
资源/ nav.HTML
<nav> <ul> <li>Tweets</li> </ul></nav>
输出(main.Js):
cljstemplates.web.nav = "\x3cnav\x3e\n \x3cul\x3e\n \x3cli\x3eTweets\x3c/li\x3e\n \x3c/ul\x3e\n\x3c/nav\x3e\n";总结
以上是内存溢出为你收集整理的来自html文件的Clojurescript模板全部内容,希望文章能够帮你解决来自html文件的Clojurescript模板所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)