Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

194
Visualizações
class.active no está cambiando a través del controlador de eventos (clic)

Estoy tratando de crear una especie de acción de alternar cuando dos botones están en angular.

Botones para codificar

Entonces, lo que debería suceder es que cuando hago clic en tendencia, la ráfaga debería aparecer como inactiva y viceversa. Estoy tratando de hacer esto a través [class.active] en angular:

 <div class="col-6"> <button [class.active]="burstButton" (click)="onTabChange()" clickable>Burst</button> </div> <div class="col-6"> <button [class.active]="trendingButton" (click)="onTabChange()" clickable>Trending</button> </div>

Traté de hacer esto declarando dos variables booleanas, una para cada botón:

 public trendingButton: boolean = true; public burstButton: boolean = false;

Y maneje el evento de clic a través de una función obviamente:

 onTabChange() { console.log('Hello from ontabchange') if (this.trendingButton) { this.burstButton = false; } else { this.burstButton = true; } }

Mi problema es que no importa en qué botón haga clic, no pasa nada. La impresión de registro en onTabChange aparece en la consola cuando hago clic en cualquiera de los botones, por lo que no entiendo qué está pasando.

Gracias de antemano

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

La lógica en su onTabChange parece incorrecta. El valor de this.trendingButton siempre será true y, por lo tanto, a this.burstButton siempre se le asignará el valor false de la primera rama de su if-else.

Lo más importante, ¿ha definido la clase .active en su archivo CSS? Si no, entonces lo que ve es el comportamiento esperado.

about 4 years ago · Juan Pablo Isaza Relatório

0

Tu condición debería ser así...

 trendingButton: boolean = false; burstButton: boolean = false; onTabChange() { console.log('Hello from ontabchange') if (!this.trendingButton) { this.trendingButton= true; } else { this.trendingButton= false; } if (!this.burstButton) { this.burstButton= true; } else { this.burstButton= false; }`enter code here` }

y asegúrese de haber definido su clase "activa" en CSS

about 4 years ago · Juan Pablo Isaza Relatório

0

Tiene una lógica incorrecta en onTabChange y una variable adicional. Haga que el código html se ejecute en TabChange con el nombre del botón:

 <div class="col-6"> <button [class.active]="currentButton === 'burst'" (click)="onTabChange('burst')" clickable>Burst</button> </div> <div class="col-6"> <button [class.active]="currentButton === 'trending'" (click)="onTabChange('trending')" clickable>Trending</button> </div>

archivo TS int:

 public current: string = 'burst'; onTabChange(buttonName: string) { console.log('Hello from ontabchange') this.currentButton = buttonName; }

Espero que esto ayude.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda