【问题标题】:clojure luminus global variable access into templateclojure luminus 全局变量访问模板
【发布时间】:2020-02-14 17:41:43
【问题描述】:

我正在尝试使用 Luminus 和 Selmer 模板做一件简单的事情(至少对于通用框架),但我找不到方法。我只想将值传递给基本模板,如下所示:

文件:home.html

{% extends "base.html" {:user {{ user }} } %}
​{% block content %}
...
​{% endblock %}

我知道我们可以像这样使用渲染文件来做到这一点

(render-file "html/base.html" {:user user})

但它看起来不正确,它看起来像是一个奇怪的解决方法。

我的想法其实是做一些全局变量来访问应用程序的任何地方,比如用户会话,但是我在luminus documentation没有找到它

【问题讨论】:

  • 如果您被锁定在文本模板解决方案中,请原谅,但如果不是:Clojure 中有更好的路径。元素结构的数据文字,因此输出编码/转义可以是自动的。片段可以是由普通程序逻辑组成的纯函数。不可变数据允许您部分处理模板并将结果用作许多独立最终自定义的起点。同时,您避免了文本模板的弱点:另一种表示法,有严格的限制;当您超过该限制时,程序代码中的效果重复,&双重编码。

标签: clojure luminus


【解决方案1】:

好吧,即使 Selmer 很酷,Clojure 中的大部分网络文化都将 Hiccup 作为模板生成器。您将使用带有 ClojureScript(Reagent - Re-frame)的 Hiccup,这是切换到它的另一个原因。可能你已经安装了 Hiccup,检查一下:

lein deps :tree | grep hiccup  

您需要创建一个类似this one 的布局。并在“控制器”like this 中使用它来构建您的 HTML 视图。

【讨论】:

    猜你喜欢
    • 2017-02-24
    • 2014-07-20
    • 2021-09-16
    • 1970-01-01
    • 2012-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-14
    相关资源
    最近更新 更多