[英]Iterate over list in embedded Elixir
我目前正在尝试嵌入式长生不老药(在我的例子中是 .html.eex 文件)。 我知道如何呈现 elixir 哈希,但我不知道如何创建显示列表中所有项目的内容。 在 Ruby 中,它会像这样工作:
<% array.each do |item| %>
<p> <%= item %> </p>
<% end %>
Elixir 的等价物是
<%= for item <- list do %>
<p><%= item %></p>
<% end %>
请注意,您必须在 Elixir 的for
前面使用<%=
。
我很好奇这是否可以使用Enum
模块,因为 Patrick Oscity 的答案依赖于Comprehensions
,它看起来只是Enum
模块的包装器。
答案是肯定的。 我首先尝试使用Enum.each
。 这神秘地只印ok
屏幕,但是这就是Enum.each
做; 它总是返回:ok
原子。
我认为Enum.map
会更好,因为它返回结果列表。 看一看:
<%= Enum.map(@list, fn(item) -> %>
<p><%= item %></p>
<% end) %>
EEx
工作原理与ERB
几乎相同。 在您的ERB
示例中,您将一个类似于 lambda 或匿名函数的“块”传递给each
函数。 在我的EEx
示例中, fn (item) ->
代替了do |item|
.
所以现在,您不仅可以迭代Lists
,还可以试验更多种类的函数,这些函数采用匿名函数来操作模板。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.