У меня проблема с angular анимациями. В настоящее время он работает только когда переход установлен на :enter
, но работает, когда я переключаю значение свойства с true на false или наоборот. Я уже установил состояние и переходы, но он ничего не делает, и я не получаю никаких ошибок, поэтому я не знаю, что я делаю неправильно. Это мой код:
import { Component, OnInit, Input, EventEmitter, Output } from "@angular/core";
import { Question } from "../models/question";
import {
trigger,
transition,
state,
style,
animate
} from "@angular/animations";
@Component({
selector: "app-question",
templateUrl: "./question.component.html",
styleUrls: ["./question.component.scss"],
animations: [
trigger("slideView", [
state("true", style({ transform: "translateX(0)", opacity: 1 })),
state("false", style({ transform: "translateX(100%)", opacity: 0 })),
transition(
"0 => 1",
animate("500ms", style({ transform: "translateX(0)", opacity: 1 }))
),
transition(
"1 => 1",
animate("500ms", style({ transform: "translateX(100%)", opacity: 0 }))
),
transition(":enter", [
style({ transform: "translateX(100%)", opacity: 0 }),
animate(
"600ms ease-in",
style({ transform: "translateX(0%)", opacity: 1 })
)
])
])
]
})
export class QuestionComponent implements OnInit {
@Input() nextQuestion: Question;
@Output() onNextQuestion = new EventEmitter<any>();
@Output() onPreviousQuestion = new EventEmitter<any>();
show = true;
get stateName() {
return this.show ? "show" : "hide";
}
toggle(evt): void {
this.show = !this.show;
console.log(this.show);
}
constructor() {}
ngOnInit() {
console.log(this.show);
}
goBack(event: Event) {
this.show = false;
this.onPreviousQuestion.emit(event);
}
selectAnswer(event: Event) {
this.show = true;
this.onNextQuestion.emit(event);
}
}
my html:
<div class="row" [@slideView]="stateName" #tref>
<div class="col-md-10 col-lg-10 col-xxxl-6 offset-lg-1 offset-md-1">
<nb-card class="list-card">
<nb-card-header>
{{ nextQuestion.questionTitle }}
</nb-card-header>
<nb-card-body>
<nb-list [id]="nextQuestion.idQuestion">
<nb-list-item
*ngFor="let alternative of nextQuestion.alternatives | keyvalue"
(click)="selectAnswer($event)"
[id]="alternative.key"
>
{{ alternative.value }}
</nb-list-item>
</nb-list>
</nb-card-body>
<nb-card-footer
><button nbButton ghost status="warning" (click)="goBack($event)">
Volver
</button>
<button nbButton ghost status="primary" class="float-right">
Completar
</button></nb-card-footer
>
</nb-card>
</div>
</div>
<button nbButton ghost status="primary" class="float-right" (click)="toggle()">
Completar
</button>
У меня есть эта кнопка переключения, чтобы играть с переходом, но она тоже не работает. Кстати, моя цель - заставить мое приложение работать , как это приложение викторины, когда оно переходит от вопроса к вопросу, но я не хочу использовать библиотеку, которую он использует там, потому что она обращается к DOM.
Спасибо за помощь!