首页 > 解决方案 > phoenix 传递变量来查看

问题描述

我有一个将在视图中使用的查询结果,但是当我在视图中调用变量时,我得到了undefined function data/0(因为数据不起作用)

我已经用不同的方式、地图等传递数据

控制器.ex:

def new(conn, _params) do
    data =
        Enum.map(
          from(AccountTypeSchema)
          |> Repo.all(),
          fn elem ->
            elem |> Map.from_struct() |> Map.delete(:__meta__)
          end
        )
    render(conn, "new.html", data: data)
end

view.html.eex :

<% Enum.each data, fn(item) -> %>
    <option value="us">Facebook</option>
<% end %>

从视图调用data变量

标签: elixirphoenix-framework

解决方案


请改用此代码:

render(conn, "new.html", account_types: data)

然后在视图中:

<% Enum.each @account_types, fn(item) -> %>
  <option value="us">Facebook</option>
<% end %>

通常@,当您将关键字列表或映射传递给视图时,模板中有可用的前缀变量:https ://hexdocs.pm/phoenix/Phoenix.View.html#render/3


推荐阅读