저는 clojure와 웹 개발 스택에 새로운 브랜드입니다. 이건 내 두 HTML 요소를 설정하기 위해 잘 작동deftemplate에서 로컬 변수 바인딩을 사용하여 확대하기
(en/deftemplate project-main-page
(en/xml-resource "project-main.html")
[id]
[:#project-name] (en/content (str "Name: " ((get-project id) :name)))
[:#project-desc] (en/content (str "Desc: " ((get-project id) :desc))))
하지만 내 기능 get-project
에 반복 호출을 포함한다 : 나는 HTML 템플릿에 값을 설정하는 enlive 사용하는 것을 시도하고있다. 이 순간에 로컬 맵에서 읽지 만 결국에는 외부 저장소 액세스가 필요하므로이 함수에서 한 번만 수행하는 것이 좋습니다.
(en/deftemplate project-main-page
(en/xml-resource "project-main.html")
[id]
(let [project (get-project id)]
[:#project-name] (en/content (str "Name: " (project :name)))
[:#project-desc] (en/content (str "Desc: " (project :desc)))))
을하지만 이것은 단지 설명 요소에 영향을 미치고 이름 양식을 무시 :
나는 let
를 사용하는 생각을했다.
deftemplate
내에 로컬 변수를 바인딩하는 가장 좋은 방법은 무엇입니까?
이 deftemplate에'macroexpand'을 실행 해,이 정보를 수 무엇을해야 할 다른 방법을 전달 바랍니다. – dimagog