Elixir 使用整数。模板中的\u是否为偶数(计数)

Elixir 使用整数。模板中的\u是否为偶数(计数),elixir,phoenix-framework,Elixir,Phoenix Framework,我自定义phx.gen.html模板以使用TailwindCSS。在:show模板中,我使用以下代码: <%= for {{k, _}, counter} <- Enum.with_index(schema.attrs) do %> <% bg_color = if Integer.is_even(counter), do: "bg-gray-50", else: "bg-white" %> <div class

我自定义
phx.gen.html
模板以使用TailwindCSS。在
:show
模板中,我使用以下代码:

<%= for {{k, _}, counter} <- Enum.with_index(schema.attrs) do %>
  <% bg_color = if Integer.is_even(counter), do: "bg-gray-50", else: "bg-white" %>
  <div class="<%= bg_color %>">
    [...]
  </div>
<% end %>
整数是偶数(计数器)就是问题所在

  • 我如何在此处要求
    Integer
  • 在“bg-gray-50”和“bg白色”之间迭代
    bg_color
    的值,是否有更好/更容易/更干净的方法

[...]

多亏了@aleksei matiushkin

我对tailwindcss不太熟悉,但这通常可以完全通过CSS完成

在我看来,tailwindcss确实支持

所以我可以想象,在对你的顺风配置进行一个小的调整之后,你可以给你所有的div一个相同的类(我相信CSS子索引从1开始,所以我把什么叫做“偶数”):


通话前
show.html.eex
中的任何位置。另外,是一个普通函数。这是一个有趣的问题。谢谢
** (CompileError) ./priv/templates/tailwind.gen.html/show.html.eex:10: 
you must require Integer before invoking the macro Integer.is_even/1
    (elixir 1.11.2) expanding macro: Kernel.if/2
    ./priv/templates/tailwind.gen.html/show.html.eex:10: (file)
<% require Integer %>
<%= for {{k, _}, counter} <- Enum.with_index(schema.attrs) do %>
  <% bg_color = if Integer.is_even(counter), do: "bg-gray-50", else: "bg-white" %>
  <div class="<%= bg_color %>">
    [...]
  </div>
<% end %>
<%= for {k, _} <- schema.attrs do %>
  <div class="bg-gray-50 even:bg-white">
    [...]
  </div>
<% end %>