2012-07-18 2 views

답변

26

요소 제거에 애니메이션을 적용하려면 제거하기 전에 수행해야합니다.

이것을 증명하는 fiddle을 만들었습니다.

첫 번째 섹션에서는 DOM에서 제거되는 요소에 대한 각도 호출 인 $destroy 이벤트를 수신합니다.

두 번째 경우에는 fadeOut이라는 지시어를 작성하여 자동으로 요소를 제거합니다.

세 번째 경우에는 지시문이 fadeOut 요소를 제거하고 제거가 컨트롤러로 전달됩니다.

제거 된 요소를 fadeOut하려는 경우 첫 번째 옵션을 사용할 수 없습니다.

두 번째와 세 번째 사이에 나는 더 유연하기 때문에 개인적으로 세 번째를 제안합니다.

+1

감사합니다. 이것은 IE8 (9에서 테스트되지 않음)을 제외하고는 올바르게 작동합니다. –

+0

은 IE8에서 문제를 제기합니까? 앱이 리피터를 렌더링하지 않는다면 예제에 "class = 'ng-app'"를 추가하지 않았기 때문일 수도 있습니다. –

+0

대답에 대한 문제는 요소의 클릭 제거 기능에 대한 바인딩에 의존한다는 것입니다. 필자는 controller/ui logic을 간섭하지 않고 지시자가 작동한다고 생각합니다. fadeOut은 요소가 실제로 list 변수에서 제거 될 때 직접 트리거되어야합니다. 나는 $ destroy 이벤트 안에 페이드 코드를 넣으려고했으나 배열리스트의 스플 라이스 액션 직후에 각도를 제거하기 때문에 진행할 시간이 없다. 위의 솔루션 개선 –

관련 문제