entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Eliminar elementos AngularJS Track By

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:

1 Respuesta

3votos

cloudman Puntos4020

Buenas tardes Negimaru.

Si estás metiendo un filtro, tienes que meter el track by detrás del filtro. Pruebalo así:

ng-repeat="build in builds.builds.build | orderBy:'lastBuildDetails.startDate' track by build._id"

En la documentación oficial tienes algo al respecto de esto.

https://docs.angularjs.org/api/ng/directive/ngRepeat

Un saludo, espero que te sirva.

0voto

Negimaru comentado

Si era eso, es raro había estado viendo ejemplos y lo ponían como yo por eso no me lo plantee.
Muchas gracias.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta