elixir - 使用 Phoenix Elixir 渲染指定包含部分

标签 elixir phoenix-framework

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

<%= assigns[:feet]%>

在我的 Controller 中我有: def index(conn, _params) do render(conn, "index.html", feet: "feet.html") end 我想这样做,这样我就可以在不同的 subview 中导入不同的脚。例如:

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

这可能如何实现?

最佳答案

您需要调用Phoenix.View.render/3:

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

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

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

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

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

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

关于elixir - 使用 Phoenix Elixir 渲染指定包含部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38547828/

相关文章:

elixir - Ecto 查询 where testA 和 (testB 或 testC)

elixir - 如何切换更新模型 bool 属性?

elixir - Rails 引擎就像 Phoenix

elixir - 使用 Phoenix/Ecto 显示数据库中的最后一条记录

exception - 处理错误-Elixir

erlang - Elixir 获取所有预定消息

elixir - Elixir 中 GenServer 可以有自己的结构吗?

macos - Emacs 上的 Elixir : exec erl not found

ruby-on-rails - Phoenix Rails 的 'head :ok' 相当于什么?

json - Phoenix 中的自定义 JSON 响应格式