并行运行多个查询动画

Dra*_*vuk 9 typescript angular angular-animations

我有两个路由组件及其容器,我已设置动画触发器@slide,其中我查询每个和相应的动画.

<div [@slide]="o.activatedRouteData.name">
  <router-outlet #o="outlet"></router-outlet>
<div>
Run Code Online (Sandbox Code Playgroud)

RouterModule.forRoot([
  { path: '',      component: HomeComponent,  data: { name: 'home' } },
  { path: 'login', component: LoginComponent, data: { name: 'login' } } ])
Run Code Online (Sandbox Code Playgroud)

trigger('slide', [
  transition('login => home', [
    query('home', style({ left: '-120%', right: '120%' })),
    query('login', style({ left: '0', right: '0' })),

    query('home', animate(duration, style({ left: '0', right: '0' }))),
    query('login', animate(duration, style({ left: '120%', right: '-120%' })))
])
Run Code Online (Sandbox Code Playgroud)

这是有效的,除了第二个动画在开始之前等待第一个动画完成,而我正在寻找的是让它们并行发射的方法.思考?

Dra*_*vuk 10

将查询换行到 group()

trigger('slide', [
  transition('login => home', [
    query('home', style({ left: '-120%', right: '120%' })),
    query('login', style({ left: '0', right: '0' })),

    group([ query('home', animate(duration, style({ left: '0', right: '0' }))),
            query('login', animate(duration, style({ left: '120%', right: '-120%' }))) ])
])
Run Code Online (Sandbox Code Playgroud)

感谢Ploppy3在GitHub上.