在 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 %> 以查看 datachanges 的全部内容。

所以做你想做的事情的一种方法是:

<div class="<%= if @changeset.data.value1 == "", do: "hidden", else: "" %>">

(请注意,我已将 <%= ... %> 标记放在双引号内。)