在javascript模板中添加/添加逻辑是一个好主意吗?
<time style="display: <%= time ? 'block' : 'none' %>"><%= time %></time>
渲染时间如何受此影响?这是一个很大的区别吗?
答案 0 :(得分:3)
一般情况下,避免模板中的逻辑是明智的,尽管如果初始化某些值,则有条件地输出块是正常的。
以下,我不会遇到问题:
<% if(time) { %><time><%= time %></time><% } %>
根据您的情况,我会这样做。在<head>
(或css)中:
<style>
time:empty { display: none; }
</style>
在你的模板中:
<time><%= time %></time>
我不确定浏览器对`:empty'伪选择器的支持,但为了安全起见你也可以这样做:
$("time:empty").hide();
答案 1 :(得分:1)
通常,逻辑不应该在模板中。逻辑应该在模型和控制器中,模型中的越多,控制器越少越好。
但是,在您提供的特定示例中,条件不是真正的逻辑,更像是确保模板不会中断。因此,从概念上讲,视图中应该存在这种“逻辑”。
我认为关于模板的Django文档可以很好地分离(和解释)模板中的逻辑以及模板中没有真正做到的逻辑。 https://docs.djangoproject.com/en/dev/ref/templates/builtins/