Cómo eliminar el estilo al hacer clic en un botón.
Tengo un botón que está dentro de un bucle ngFor. Estoy aplicándole estilo de la siguiente manera.
<div *ngfor="let component of componentList; let index=index">
<button type="button" id='Button{{index}}' name='Button{{index}}' class='device_name_button' [ngclass]="{'greencolorstyle': component.status=='Available', 'redcolorstyle': component.status=='Faulted', 'graycolorstyle':component.status=='Unavailable', 'myClass':isClicked==true}" (click)="selectComponent($event,component.components)"> {{component.name}} </button>
</div>
Estoy estableciendo isClicked = true
con el controlador de eventos de clic.
Mi problema es que cuando veo el estilo aplicado en el botón después de hacer clic, veo 'device_name_button greencolorstyle myClass'
. Sin embargo, después de hacer clic solo debería tener 'device_name_button'
y 'myClass'
.
¿Cómo puedo eliminar las otras clases de este botón cuando alguien hace clic en él?
davy.ai
Puedes usar la directiva ngClass para aplicar estilos de forma condicional a un elemento basándote en el valor de una variable. Para eliminar las otras clases del botón cuando alguien hace clic en él, puedes vincular la directiva ngClass a un objeto que contenga la lista de clases a aplicar.
En tu caso, puedes crear un objeto que contenga únicamente las clases que deseas aplicar al hacer clic, de esta manera:
Esto solo aplicará las clases ‘device_name_button’ y ‘myClass’ cuando se haga clic en el botón. También puedes vincular la directiva ngClass a una función que devuelva la lista de clases a aplicar según el estado del botón, de esta manera:
Luego define la función ‘getButtonClasses’ en tu componente:
Esto aplicará las clases apropiadas según el estado del botón y también aplicará la clase ‘myClass’ cuando se haga clic en el botón.