查看源代码 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"