Tho*_*der 5 angular2-animation angular
我试图在组件的参数更改时触发动画,但只能在组件第一次路由到时执行动画。使用不同参数对该组件的所有后续导航都不会触发动画。
例如,请参阅此 plunker。
从导航时
/home
Run Code Online (Sandbox Code Playgroud)
到
/home/animated/1
Run Code Online (Sandbox Code Playgroud)
动画正在执行。如果只有 ID 更改,例如
/home/animated/2
Run Code Online (Sandbox Code Playgroud)
什么也没有发生。我错过了什么或者这是预期的行为?
我也遇到了这个问题,如果有人知道为什么请帮忙 - 我的解决方案:
我有一个自动浏览幻灯片的轮播:
Component.HTML:我必须将路由组件的 div 包装在动画中
<div [@slideInOutAnimation]='mainState'></div>
Run Code Online (Sandbox Code Playgroud)
然后在路由到新 ID 时更改状态,并在将状态更改回来之前延迟,以便它可以再次运行下一张幻灯片。
组件.TS:
this.mainState = 'enter';
var delayAnim = setTimeout(() => {
this.mainState = 'new';
},3000)
Run Code Online (Sandbox Code Playgroud)
这是使用 Animation.TS 的动画的一部分:
trigger('slideInOutAnimation', [
state('new', style({
...
})),
transition('* => enter', [
...style...animate...
])
Run Code Online (Sandbox Code Playgroud)
这样,当路由到新的 id 时,它会将状态更改为“输入”,让动画运行,然后将状态更改回“新”,以便下一个路由能够再次运行动画。主页/组件/1 => 主页组件/2 等