Yes, this is normal, it allows you to have transitions when replacing the view.
From the official ngView documentation :
enter - animation is used to output new content to the browser. leave - animation is used to animate existing content.
Animation of input and stop occurs simultaneously.
In fact, ngView not the only directive that behaves this way, for example, ngRepeat behaves the same way.
If you want your views to not overlap, you can try this.
Add a class to the ng-view element so you can easily customize it with css, something like this:
<div ng-view class="your-view"></div>
And then in your css do the following:
.your-view.ng-leave { display:none; }
Josep source share