檢視原始碼 EEx.SmartEngine (EEx v1.16.2)
EEx 使用的預設引擎。
它包含變數(例如 @foo
),未來可能還有其他便利功能。
範例
iex> EEx.eval_string("<%= @foo %>", assigns: [foo: 1])
"1"
在上面的範例中,我們可以使用 @foo
存取繫結 assigns
下的 foo
值。這很有用,因為範本在編譯後可以接收不同的變數,而且不需要為每個變數組重新編譯。
編譯成函式時也可以使用變數
# sample.eex
<%= @a + @b %>
# sample.ex
defmodule Sample do
require EEx
EEx.function_from_file(:def, :sample, "sample.eex", [:assigns])
end
# iex
Sample.sample(a: 1, b: 2)
#=> "3"