Phoenix dynamic classnames Phoenix.HTML

Viewed 834

I would like to join a dynamic classname name with a static one.

<div class=<%="#{getClass(app.status)} two" %>

This results in

<div class="one" two>

Instead of

<div class="one two">

How do I resolve this issue?

2 Answers

In case you are using Phoenix within Elixir, this is the way to:

<div class={"fixed-left #{if @current_user do 'login-page' end}"}>

You should use <div class="<%= getClass(app.status)} %> two">.
<%= %> evaluate Elixir code and inject result into any part of HTML.
You can inject value inside HTML tag:

<div>
  <%= @user_name %>
</div>

Or into any HTML attributes

<a class="btn <%= if(@alert, do: "btn-danger", else: "btn-primary") %>">...</a>

Or set HTML attribute

<button class="btn btn-success" <%= if(@disable_button, do: "disabled", else: "tooltip=\"button is working\"") %>">...</button>
Related