2017-05-22 3 views
2

:enter 구성 요소가 처음 렌더링 될 때 요소에 애니메이션이 적용됩니다. 그것을 막을 수있는 방법이 있습니까? width 애니메이션의 간단한 예를 들어각. 초기 렌더링에서 애니메이션 입력을 건너 뛸 수있는 방법이 있습니까?

확인 this plunker는 :

transition(':enter', [ 
    style({width: 0}), 
    animate(250, style({width: '*'})), 
]), 
+0

시도해보십시오. https://stackoverflow.com/a/46186537/5155810 –

답변

0

그에 대한 void 상태에있다. 기본적으로 null 상태를 나타냅니다. 다음과 같이 할 수 실제로

: 요소 하지 않습니다 때마다 어떤 상태 로 아직 상태 및 전환을 가지고

trigger('myState', [ 
    state('previous', style({ transform: 'translateX(-100%)' })), 
    state('current', style({ transform: 'translateX(0)' })), 
    state('next', style({ transform: 'translateX(100%)' })), 
    transition('void => *', animate(0)), // <-- This is the relevant bit 
    transition('* => *', animate('250ms ease-in-out')) 
]) 

이것이 의미하는 것은, 그것은 안 생명 있는.

따라서, 귀하의 경우에는 다음과 같이 작성할 수 있습니다 :

transition('void => :enter', animate(0)) 

난 그 말이 바랍니다.

+1

이 솔루션을 사용해 보셨습니까? plunker를 시도하십시오. 먼저': enter'는'void => *'의 지름길이므로'void => : enter'에 의미가 없습니다. 둘째, 이미 입력 : 애니메이션을 구성 요소에 사용하는 것이 문제의 근본 원인입니다. 왜냐하면 입력이 처음으로 그릴 때도 애니메이션이 적용되기 때문입니다. –

+0

'오류 : 제공된 전환 표현 "void => : enter"는 지원되지 않습니다. – nest