Clojure:解决Selmer与AngularJS的 标签混淆问题
Selmer是Clojure的一个模板类库,下面是它的一个DEMO模板:
<ul>
{% for item in items %}
<li>{{item}}</li>
{% endfor %}
</ul>
很明显,它的{{}}的写法很容易和AngularJS混淆起来。为了解决这个问题,我们可以在它的生成模板语句中更改它的tag,通过自定义:tag-open和:tag-close即可。示例代码如下:
(ns fycoins.views.layout
(:require [selmer.parser :as parser]
))
(def template-folder "fycoins/views/templates/")
(defn render [template & [params]]
(parser/render-file (str template-folder template)
params
{:tag-open \[
:tag-close \]}))
这样,我们的模板文件就可以写成这样:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="[{context}]/css/screen.css" />
</head>
<body>
Home
</body>
</html>