参数改变时在组件上触发动画

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)

什么也没有发生。我错过了什么或者这是预期的行为?

Tyl*_*erT 1

我也遇到了这个问题,如果有人知道为什么请帮忙 - 我的解决方案:

我有一个自动浏览幻灯片的轮播:

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 等