我目前正在尝试使用嵌入式elixir(在我的情况下是.html.eex文件)。我知道如何渲染elixir哈希,但我无法弄清楚如何创建显示列表中所有项目的内容。在Ruby中它会像这样工作:
<% array.each do |item| %>
<p> <%= item %> </p>
<% end %>
答案 0 :(得分:24)
Elixir等效物是
<%= for item <- list do %>
<p><%= item %></p>
<% end %>
请注意,您必须在Elixir中的<%=
前面使用for
。
答案 1 :(得分:4)
我很好奇是否可以使用Enum
模块,因为Patrick Oscity的答案依赖于Comprehensions
,它看起来只是Enum
模块的包装。
答案是肯定的。我首先尝试使用Enum.each
。哪个神秘地只在屏幕上打印ok
,但这就是Enum.each
的作用;它总是返回:ok
原子。
我认为Enum.map
会更好,因为它会返回结果列表。看看:
<%= Enum.map(@list, fun(item) -> %>
<p><%= item %></p>
<% end) %>
EEx
与ERB
几乎相同。在您的ERB
示例中,您向each
函数传递了一个类似于lambda或匿名函数的“块”。在我的EEx
示例中,fn (item) ->
取代do |item|
。
现在,您不仅可以迭代Lists
,而且还可以尝试使用操作模板的匿名函数的各种函数。