Phoenix模板如果有条件的话

cod*_*hal 12 phoenix-framework

我从rails迁移,并希望这在我的模板中工作?

      <% if true do %>
        <li><p>hello</p></li>
      <% else %>
        <li><p>world</p></li>
      <% end %>
Run Code Online (Sandbox Code Playgroud)

似乎没有任何条件被渲染.如何实现这一目标?

谢谢

Gaz*_*ler 21

你需要使用<%=而不是<%

<%= if true do %>
...
<% end %>
Run Code Online (Sandbox Code Playgroud)

来自EEx文档:

所有向模板输出内容的表达式都必须使用等号(=).由于Elixir中的所有内容都是表达式,因此此规则没有例外.例如,虽然某些模板语言是特殊情况if子句,但它们在EEx中被视为相同,并且还需要=以便打印结果:

  • 所以我在为为什么`end`不需要等号而苦苦挣扎?我有一个里面有一个“ else”,并且在那里有输出到模板,所以为什么它不需要=? (2认同)