Elixir get(assigns,:key)返回nil而不是视图中的预期值
在模板中:Elixir get(assigns,:key)返回nil而不是视图中的预期值,elixir,phoenix-framework,Elixir,Phoenix Framework,在模板中: <%= @key %> 给我nil。根据文件 @实际上是一个将@key转换为Map.get(assignments,:key) 那么为什么上面返回的nil不是预期值? 更让我困惑的是,当我打字的时候 conn.assigns.key 在视图中,它为我提供了所需的值。在模板中@conn.assigns和assigns是两个不同的东西赋值映射来自EEx,它启用了@var语法conn.assigns来自插头,是不同插头中所需数据的公共存储空间。 调用Phoenix.Cont
<%= @key %>
给我nil
。根据文件
@
实际上是一个将@key
转换为Map.get(assignments,:key)
那么为什么上面返回的nil
不是预期值?
更让我困惑的是,当我打字的时候
conn.assigns.key
在视图中,它为我提供了所需的值。在模板中
@conn.assigns
和assigns
是两个不同的东西<代码>赋值映射来自EEx,它启用了@var
语法conn.assigns
来自插头,是不同插头中所需数据的公共存储空间。
调用Phoenix.Controller.render/3
时,显式传递的赋值(作为最后一个参数)与conn.assigns
合并,并作为assigns
传递到模板,但conn.assigns
不会用新值更新
conn.assigns.key