html – 如何在Slim lang中动态添加属性?

在我的Exlir / Phoenix应用程序中,我使用slim,我想动态添加属性:

input type="checkbox" <%= if some_condition, do: ~s{checked="checked"} %>

但是,slim将输入标记内的checked =“checked”作为其内容呈现,并且更多地将其转义.
如何动态添加checked =“checked”属性?请注意:

input type="checkbox" checked="<%= if some_condition, do: ~s{checked} %>"

对我不起作用,因为我需要将整个checked =“checked”添加到标签中或者根本不添加任何内容.

最佳答案 您可以为属性分配一个布尔值,如果值为true,它只会输出属性名称.这应该等同于在HTML5中添加checked =“checked”.

iex(1)> IO.puts Slime.render("input type=\"checkbox\" checked=some_condition", some_condition: false)
<input type="checkbox">
:ok
iex(2)> IO.puts Slime.render("input type=\"checkbox\" checked=some_condition", some_condition: true)
<input type="checkbox" checked>

这也在Slime’s README中提到.

点赞