Ответ 1
У вас нет состояний, определенных в вашей функции trigger()
.
Триггер создает именованный анимационный триггер, содержащий список записей state()
и transition()
которые должны быть оценены при изменении выражения, связанного с триггером (выражение [@slideInOut]="helpMenuOpen"
в примере ниже).
@Component({
...
animations: [
trigger('slideInOut', [
state('in', style({
overflow: 'hidden',
height: '*',
width: '300px'
})),
state('out', style({
opacity: '0',
overflow: 'hidden',
height: '0px',
width: '0px'
})),
transition('in => out', animate('400ms ease-in-out')),
transition('out => in', animate('400ms ease-in-out'))
])
]
})
export class AComponent implements OnInit {
helpMenuOpen: string;
constructor() { }
ngOnInit() {
this.helpMenuOpen = 'out';
}
toggleHelpMenu(): void {
this.helpMenuOpen = this.helpMenuOpen === 'out' ? 'in' : 'out';
}
}
Тогда используйте это по вашему мнению так:
<div [@slideInOut]="helpMenuOpen">
<h1>My Title</h1>
<p>My paragraph</p>
</div>
<button (click)="toggleHelpMenu()">help</button>