gpt4 book ai didi

Angular2 在休假和可观察过滤器上运行动画

转载 作者:太空狗 更新时间:2023-10-29 17:05:40 24 4
gpt4 key购买 nike

我有一个组件,我可以像这样在进入时设置动画,进入动画效果很好。 handleRemoval 方法被执行,事件发射器从组件列表中过滤组件(使用可观察对象)。但是 :leave 动画没有运行:

    @Component({
animations: [
trigger(
'enterAnimation', [
transition(':enter', [
style({transform: 'translateY(100%)', opacity: 0}),
animate('500ms', style({transform: 'translateY(0)', opacity: 1}))
]),
transition(':leave', [
style({transform: 'translateY(0)', opacity: 1}),
animate('500ms', style({transform: 'translateY(100%)', opacity: 0}))
])
]
)
],
template: `
<div class="mb1 card text-xs-center rounded" [@enterAnimation]="show">

...

export class ContentPropertyComponent {

show: boolean = false;

constructor(private router: Router) {
this.show = true;
}

handleRemoval(contentProperty: PropertyModel) {
this.show = false;
this.delete.emit(this.contentProperty);
}
}

感谢任何帮助。

最佳答案

Angular 在 2.1.0 版本中引入了 :enter:leave 快捷方式,所以如果您使用的是早期版本(如我怀疑),您应该使用 void => ** => void 转换定义。或者,将您的 Angular 发行版升级到 2.1.0+

相应地更改代码在 Angular 2.0+ 中有效

animations: [
trigger("enterAnimation", [
transition('void => *', [
style({transform: 'translateY(100%)', opacity: 0}),
animate('500ms', style({transform: 'translateY(0)', opacity: 1}))
]),
transition('* => void', [
style({transform: 'translateY(0)', opacity: 1}),
animate('500ms', style({transform: 'translateY(100%)', opacity: 0}))
])
])
]

笨蛋:https://plnkr.co/edit/xW38PWgD3SQyhRv09IUW?p=preview

关于Angular2 在休假和可观察过滤器上运行动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42438908/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com