Enter/Leave animation with ng-repeat

by klode

HTML

<script src="https://code.angularjs.org/1.3.2/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.2/angular-animate.min.js"></script>
<div ng-app="myApp">
    <div ng-controller="Ctrl">
        <button ng-click="addOne()">Add One</button>
        <button ng-click="deleteOne()">Delete Last</button>
        <li class="target" ng-repeat="n in array">{{n}} Bring me in!</li>
    </div>   
</div>

CSS

.target.ng-enter,
.target.ng-leave
{
    transition:all linear 0.5s;
}
.target.ng-enter,
.target.ng-leave.ng-leave-active
{
    opacity:0;
    transform: translateX(10%);
}
.target.ng-leave,
.target.ng-enter.ng-enter-active {
    opacity: 1;
    transform: translateX(0);
}

JavaScript

angular.module('myApp', ['ngAnimate'])
.controller('Ctrl', function($scope) {
    var index = 0;
    $scope.array = [];
    $scope.addOne = function() {
        index += 1;
        $scope.array.push(index);
    }
    $scope.deleteOne = function() {
        index -= 1;
        $scope.array.pop();
    }
});