Buenas, ya no se ni cuantas preguntas llevo de angularJS, pero me esta llevando a la locura.
El caso es que estoy haciendo un listado de elementos de la siguiente manera:
<div class="blocks-container" ng-init="loadProjects()" ng-controller="buildMonitorController">
<div class="row">
<div class="col-xs-12 col-sm-6 col-md-3 col-lg-2 block animate" ng-repeat="build in builds.builds.build track by build._id | orderBy:'lastBuildDetails.startDate' : true" ng-class="{'running': project.running ,'block-green': build._status ==='SUCCESS','block-red': build._status==='FAILURE'}" id="{{build._id}}">
<div class="title-container"><p>{{build._buildTypeId}}</p></div>
<div class="update-container col-xs-12">
<time>{{ build.lastBuildDetails.startDate | date : 'dd.MM.yyyy H:mm:s'}}</time>
</div>
</div>
</div>
<div ng-include src="'views/main/error-dialog.html'"></div>
</div>
Eso crea unos bloques que se van añadiendo o eliminando según una respuesta de una API y para reducir un poco la carga he aplicado el track by pero me he dado cuenta de que si uso el track by no se eliminan elementos cuando se recargan los datos,si no que se van añadiendo al DOM sin eliminar los anteriores o los que no coincidan, no se si me explico bien: