我在 Angular 4 项目中创建了以下动画:
import { trigger, state, style, transition, animate } from '@angular/animations';
export function slide() {
return trigger('slide', [
transition('void => *', [
style({opacity: 0}),
style({transform: 'translateX(100%)'}),
animate('1s ease-in-out', style({transform: 'translateX(0%)', opacity: 1}))
]),
transition('* => void', [
style({opacity: 0}),
style({transform: 'translateX(100%)'}),
animate('1s 2s ease-in-out', style({transform: 'translateX(0%)', opacity: 1}))
])
])
}
我已经使用装饰器的host
属性将动画附加到我的组件上。@Component
@Component({
selector: 'test',
templateUrl: './test.component.html',
styleUrls: ['./test.component.scss'],
animations: [slide()],
host: {'[@slide]': '', 'style': 'display: block;'}
})
现在,我希望动画在两点触发: 1. 当组件初始化时,也就是当我到达适当的路线时 2. 当我离开那条路线并导航到另一条路线时
第一种情况完美无缺,但第二种情况却没有。我在这里错过了什么/做错了什么?