Búsqueda de sitios web

typescript - Agregar una clase bajo una condición


Me gustaría agregar una clase específica bajo una condición con Vue.js.

Tengo 2 valores en mi DataStore así (TypeScript):

value1: 0 as number,
value2: 0 as number

Y con este valor, en mi plantilla, me gustaría agregar las clases:

blue--text if value1 == value2
or
red--text if value1 != value2

así:

<p class="blue--text">{{ value1 }}</p>
or
<p class="red--text">{{ value1 }}</p>

¿Alguien tiene alguna idea de cómo hacerlo?

Respuesta #1

Para renderizar clases dependiendo de las condiciones, puedes pasar un objeto a la directiva de clase. Renderizará aquellas claves del objeto como nombres de clase que tengan un valor true.

<p 
  :class="{
    'blue--text': value1 == value2,
    'red--text': value1 != value2
  }"
>
    {{ value1 }}
</p>

Vea la documentación: https://v2.vuejs.org/v2/guide/class-and-style.html

Respuesta #2

puedes usar una condición simple con un ternario y la directiva :class:

<p :class="value1 === value2 ? 'blue--text' : 'red--text'">{{ value1 }}</p>

Solo si value1 es igual a value2 se aplica la clase azul, si no, la roja.