Clojure:解決Selmer與AngularJS的 標籤混淆問題

Selmer是Clojure的一個模板類庫,下面是它的一個DEMO模板:css

<ul>
{% for item in items %}
    <li>{{item}}</li>
{% endfor %}
</ul>

很明顯,它的{{}}的寫法很容易和AngularJS混淆起來。爲了解決這個問題,咱們能夠在它的生成模板語句中更改它的tag,經過自定義:tag-open和:tag-close便可。示例代碼以下:html

 1 (ns fycoins.views.layout
 2   (:require [selmer.parser :as parser]
 3             ))
 4 
 5 (def template-folder "fycoins/views/templates/")
 6 
 7 (defn render [template & [params]]
 8   (parser/render-file (str template-folder template)
 9                       params
10                       {:tag-open \[
11                        :tag-close \]}))

這樣,咱們的模板文件就能夠寫成這樣:ui

 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="en">
 4     <meta charset="UTF-8">
 5     <title></title>
 6     <link rel="stylesheet" href="[{context}]/css/screen.css" />
 7 </head>
 8 <body>
 9 Home
10 </body>
11 </html>
相關文章
相關標籤/搜索