【发布时间】:2016-04-15 20:49:54
【问题描述】:
我在“web/templates/module/headerHC.html.eex”中有这个:
<%= for element <- MyProject.PageView.Recursion.buildElements(@header_linkNumber),1) do %>
<%= element %>
<% end %>
然后,我在“web/layout/HC.html.eex”中使用这个组件:
<%= render FabricaASA.ModuleView, "headerHC.html", conn: @conn,
header_class: nil,
header_linkNumber: "3"
%>
最后我在“web/views/page_view.ex”里面定义了:
defmodule Recursion do
def buildElements(n) when n <= 1 do
[n]
end
def buildElements(n) do
[n | buildElements(n - 1)]
end
end
问题是我收到了这个错误:
bad argument in arithmetic expression 指向这一行:
def buildElements(n) when n <= 1 do
当我插入 @header_linkNumber 而不是像 <%= for element <- MyProject.PageView.Recursion.buildElements(2),1) do %> 这样的数字时会发生这种情况
我已经尝试改用@MyProject.ModuleView.header_linkNumber,但随后出现此错误:
cannot set attribute @__aliases__ inside function/macro
【问题讨论】:
-
您是否使用 header_linkNumber 作为 buildElements 的参数?如果是这样,您应该通过
3而不是"3" -
对!我错过了那里的字符串......谢谢Gazler(请回答)。