Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

85
Vistas
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?

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

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'; }
about 4 years ago · Santiago Trujillo Denunciar

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.

about 4 years ago · Santiago Trujillo Denunciar

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

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda