我目前正在尝试使用嵌入式elixir(在我的例子中是.html.eex文件).我知道如何渲染elixir哈希,但我无法弄清楚如何创建显示列表中所有项目的内容.在Ruby中它会像这样工作:
<% array.each do |item| %>
<p> <%= item %> </p>
<% end %>
Run Code Online (Sandbox Code Playgroud)
Pat*_*ity 27
Elixir相当于
<%= for item <- list do %>
<p><%= item %></p>
<% end %>
Run Code Online (Sandbox Code Playgroud)
请注意,您必须在Elixir <%=前面使用a for.
Bre*_*dly 10
我很好奇这是否可以使用该Enum模块,因为 Patrick Oscity 的答案依赖于Comprehensions它看起来只是Enum模块的包装器。
答案是肯定的。我第一次尝试使用Enum.each. 神秘地只打印ok到屏幕上,但就是Enum.each这样;它总是返回:ok原子。
我认为Enum.map会是一个更好的镜头,因为它会返回一个结果列表。看一看:
<%= Enum.map(@list, fn(item) -> %>
<p><%= item %></p>
<% end) %>
Run Code Online (Sandbox Code Playgroud)
EEx工作原理几乎相同ERB。在您的ERB示例中,您将一个类似于 lambda 或匿名函数的“块”传递给该each函数。在我的EEx示例中fn (item) ->, 代替了do |item|。
所以现在,您不仅可以迭代Lists,还可以试验更多种类的函数,这些函数采用匿名函数来操作模板。
| 归档时间: |
|
| 查看次数: |
5528 次 |
| 最近记录: |