在凤凰模板中区分HTML块的推荐方法是什么?
我已经阅读了文档;它绘制以下轮廓;
- 根布局是由路由器中的一个插件注入的
- 你可以选择在路由上设置一个布局
- 你可以选择设置视图的布局
但是,是否有可能(或建议)以某种方式覆盖模板块?例如,Django允许你做这样的事情:
base_template
{% block header %}
<%= render "_header.html", assigns %>
{% endblock %}
{% block content %}
stuff..
{% endblock %}
inheriting_view_template
{% extends "base_template.html" %}
{% block header %}
{{ block.super }}
<p>my super interesting extra header context</p> <-- !
{% endblock %}
{% block content %}
stuff..
{% endblock %}
这有点像Rails世界
some_layout.erb
<html>
<body>
<header>
<%= yield :header %>
</header>
<div>
<%= yield :content %>
</div>
<footer>
<%= yield :footer %>
</footer>
</body>
<html>
概括一下你的答案(供进一步的读者使用)。两种可能的方法
render_existing
只在模板存在的情况下呈现。
<head>
<%= render_existing view_module(@conn), "scripts.html", assigns %>
</head>
render_layout
传递给定的do/end块作为@inner_content
呈现给定的布局。
# layout/blog.html.eex
<%= render_layout LayoutView, "app.html", assigns do %>
<div class="sidebar">...</div>
<%= @inner_content %>
<% end %>