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

330
Visualizações
Desencadenadores booleanos de animaciones angulares 4

Estoy probando una animación simple de aparición/desaparición gradual en un botón usando Angular 4 Animations. El problema que tengo es que, debido a que estoy usando valores booleanos, no se activa nada. Desde las herramientas de desarrollo, parece que se agrega una clase .ng-animating al elemento, pero no se cambia nada.

Esta es una muestra del código que tengo:

 @Component({ selector: 'fade-btn-test', styles: [ require('./fade-btn-test.component.scss') ], template: ` <button [@test]="isActive" (click)="isActive = !isActive">My Button</button> `, animations: [ trigger('test', [ state('true', style({ opacity: 0 })), state('false', style({ opacity: 1 })), transition('0 <=> 1', animate(500)) ]) ] }) export class FadeBtnTestComponent { isActive: boolean = false; }

Sé que el código anterior solía funcionar con Angular 2, sin embargo, en este caso no funciona. La única solución que he encontrado es trabajar usando una string en lugar de un boolean .

 @Component({ selector: 'fade-btn-test', styles: [ require('./fade-btn-test.component.scss') ], template: ` <button [@test]="isActive.toString()" (click)="isActive = !isActive">My Button</button> `, animations: [ trigger('test', [ state('true', style({ opacity: 0 })), state('false', style({ opacity: 1 })), transition('true <=> false', animate(500)) ]) ] }) export class FadeBtnTestComponent { isActive: boolean = false; }

Del código anterior notará que el disparador de animación @test está leyendo una cadena ( isActive.toString() ) y la función de transition ha pasado true <=> false en lugar de 0 <=> 1 .

Aunque lo hice funcionar, no estoy seguro de si hubo alguna actualización en el módulo de Animación. ¿Alguien sabe de algún cambio en el módulo de animación con la actualización de Angular 4?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Utilice valores de cadena en lugar de valores booleanos y cambie el valor de los estados en consecuencia:

 @Component({ selector: 'fade-btn-test', styles: [ require('./fade-btn-test.component.scss') ], template: ` <button [@test] = "value" (click)="isActive = !isActive">My Button</button> `, animations: [ trigger('test', [ state('active', style({ opacity: 0 })), state('inactive', style({ opacity: 1 })), transition('active <=> inactive', animate(500)) ]) ] }) export class FadeBtnTestComponent { value: string= 'active'; }
over 4 years ago · Santiago Trujillo Relatório

0

De acuerdo con el registro de cambios de Angular , el error de valores booleanos de transición se corrigió en 4.0.0-rc6 (consulte PR ).

Sin embargo, la sintaxis mixta admitida en Angular 2 ya no funciona. Los valores booleanos deben usarse tanto en la definición de estado como en la expresión de transición, como en el ejemplo a continuación:

 export const ANIMATION_SAMPLE = trigger('booleanTrigger', [ state('1', style({ ...})), state('0', style({ ...})), transition('1 => 0', animate(...)), transition('0 => 1', animate(...)) ]);

Este comentario de respuesta sugiere la misma solución alternativa para trabajar con disparadores booleanos.

over 4 years ago · Santiago Trujillo Relatório

0

Este fue un error que se informó aquí: https://github.com/angular/angular/issues/15247 y se solucionó con este PR: https://github.com/angular/angular/pull/15311

over 4 years ago · Santiago Trujillo 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