【发布时间】:2016-09-17 04:24:21
【问题描述】:
我有一个基本的应用程序布局:
#layouts/base.html.eex
<body>
<div id="base_layout.html">
<!-- some content -->
<%= render(@view_module, @view_template, assigns) %>
<!-- some content -->
</div>
</body>
我还有 20 种其他不同的布局。我想从base.html.eex 继承所有这些。我怎样才能做到这一点?我试过这个:
#layouts/child_layout5.html.eex
<div id="child_layout5.html">
<!-- some content -->
<%= render(@view_module, @view_template, Map.put(assigns, :layout, {MyApp.LayoutView, "base.html"})) %>
</div>
但这只是将基本布局呈现在 <div id="child_layout5.html"> 中。
而我希望反之亦然:在base.html 中渲染child_layoutXX.html.eex 的内容,来自child_layoutXX.html.eex
请注意,base.html 不知道它的子 child_layoutXX.html.eex,有多少,如果有的话,它们的名字是什么,也就是说,base.html 不能通过它的显式渲染它的任何子名字。
到目前为止,https://hexdocs.pm/phoenix/Phoenix.View.html#render/3 函数还没有帮助到我。
【问题讨论】: