在 Phoenix 表单中引用字段值
Referencing a field value in a Phoenix form
在使用 <%= f = form_for @changeset…
创建的 Phoenix .eex/.leex 表单中,有没有办法引用 CSS class 定义中的字段值之一?
例如,如果 field1 的值为“”,我想隐藏一个 div 元素。这是我起草的代码,但似乎不起作用。
<div class= <%= if :field1 == "" do %>
"hidden"
<% else %>
" "
<% end %>
您可以使用 Ecto.Changeset.get_field/3
, Ecto.Changeset.get_change/3
或直接使用 @changeset.data.field1
。
检查文档以了解这三者之间的差异,并在您的表单中放置一个临时 <%= inspect @changeset %>
以查看 data
和 changes
的全部内容。
所以做你想做的事情的一种方法是:
<div class="<%= if @changeset.data.value1 == "", do: "hidden", else: "" %>">
(请注意,我已将 <%= ... %>
标记放在双引号内。)
在使用 <%= f = form_for @changeset…
创建的 Phoenix .eex/.leex 表单中,有没有办法引用 CSS class 定义中的字段值之一?
例如,如果 field1 的值为“”,我想隐藏一个 div 元素。这是我起草的代码,但似乎不起作用。
<div class= <%= if :field1 == "" do %>
"hidden"
<% else %>
" "
<% end %>
您可以使用 Ecto.Changeset.get_field/3
, Ecto.Changeset.get_change/3
或直接使用 @changeset.data.field1
。
检查文档以了解这三者之间的差异,并在您的表单中放置一个临时 <%= inspect @changeset %>
以查看 data
和 changes
的全部内容。
所以做你想做的事情的一种方法是:
<div class="<%= if @changeset.data.value1 == "", do: "hidden", else: "" %>">
(请注意,我已将 <%= ... %>
标记放在双引号内。)