で正しく引数を渡すことができません:私は、この内部の「ウェブ/テンプレート/モジュール/ headerHC.html.eex」を持っているテンプレート
<%= for element <- MyProject.PageView.Recursion.buildElements(@header_linkNumber),1) do %>
<%= element %>
<% end %>
そこで、私は「ウェブ/レイアウト/ HCでこのコンポーネントを使用します.html.eex:ウェブ/ビュー/ page_view.exを ""
<%= render FabricaASA.ModuleView, "headerHC.html", conn: @conn,
header_class: nil,
header_linkNumber: "3"
%>
最後に私が内部に定義しました":
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
:私が代わりに<%= for element <- MyProject.PageView.Recursion.buildElements(2),1) do %>
のような多数の@header_linkNumber
を挿入したとき
def buildElements(n) when n <= 1 do
これが起こるには、私はすでにその代わり@MyProject.ModuleView.header_linkNumber
を使用しようとしましたが、その後、私はこのエラーを取得する:
cannot set attribute @__aliases__ inside function/macro
はあなたがbuildElementsの引数としてheader_linkNumberを使用していますか?もしそうなら、あなたは '' 3 '''ではなく '3'を渡すべきです。 – Gazler
そうです!私はその文字列を逃した...ありがとうガズラー(答えをしてください)。 –