你可以用块超级覆盖phoenix模板的部分吗(像Django?)



在凤凰模板中区分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 %>

相关内容

  • 没有找到相关文章

最新更新