【问题标题】:How can I handle the empty case in Elixir/Phoenix templates?如何处理 Elixir/Phoenix 模板中的空箱?
【发布时间】:2015-03-14 06:32:15
【问题描述】:

在一个模板中,我在某个行程中进行了几天的迭代:

<%= for day <- @days do %>
  <tr>
    <td><%= day.number %></td>
    <td><%= day.main_event_time %></td>
    <td><%= day.main_event %></td>
    <td><%= day.location %></td>
    <td><%= day.who %></td>
    <td><%= day.summary %></td>
    <td><%= day.lodging %></td>

    <td><%= link "Show", to: day_path(@conn, :show, day) %></td>
    <td><%= link "Edit", to: day_path(@conn, :edit, day) %></td>
    <td><%= link "Delete", to: day_path(@conn, :delete, day), method: :delete %></td>
  </tr>
<% end %>

我希望在没有日子的情况下出现不同的消息。我该怎么做?

【问题讨论】:

    标签: elixir phoenix-framework


    【解决方案1】:

    你可以把它放在for理解之前或之后:

    <%= if Enum.empty?(@days) do %>
      No days yet.
    <% end %>
    

    【讨论】:

    • 知道了。完整代码是&lt;%= if Enum.empty?(@days) do %&gt; No days yet &lt;% else %&gt; &lt;%= for day &lt;- @days do %&gt; ... &lt;% end %&gt; &lt;% end %&gt;
    • @ijt 你可以把for 理解放在else 部分,但这不是绝对必要的。当列表为空时,for 理解将不会呈现任何内容,无论您将它放在哪里。
    • 这里的想法是专门处理空箱。让表格只显示列标题而没有任何内容,这看起来很奇怪。
    • 我明白了,这是您最初问题的一部分。我的意思是你并不真的需要else,但它也没有什么坏处。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-29
    • 2018-08-25
    • 1970-01-01
    相关资源
    最近更新 更多