使用Phoenix Elixir渲染分配包含部分

时间:2016-07-24 01:09:14

标签: elixir phoenix-framework

在我的app.html.eex文件中,我有:

<%= assigns[:feet]%>

在我的控制器中我有: def index(conn, _params) do render(conn, "index.html", feet: "feet.html") end 我想这样做,所以我可以在不同的子视图中导入不同的脚。例如:

def :edit(conn, _params) do render(conn, "edit.html", feet: "edit-feet.html") end 不幸的是,它只是打印“feet.html”而不是导入feet.html。

这有可能吗?

1 个答案:

答案 0 :(得分:3)

您需要致电Phoenix.View.render/3

<%= render YourView, @feet, [] %>

如果设置feet是可选的,并且您不想渲染任何内容(如果它不存在),您可以执行以下操作:

<%= if feet = assigns[:feet] do %>
  <%= render YourView, feet, [] %>
<% end %>

YourView替换为包含feet.htmledit-feet.html的视图。

如果您需要将assigns传递给这些模板,可以将[]替换为您要传递的值:

<%= render YourView, @feet, foo: "bar", baz: "quux" %>