檢視原始碼 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"