2013-06-28 11 views
5

Stavo cercando una soluzione per rimuovere gli elementi dalla griglia; è per questo che ho postato la domanda prima. Ma quando ho avuto la soluzione da qualcuno, in quel momento, ho pensato che fosse risolto il problema, ma stava usando un metodo Filter.angularjs rimuovere gli elementi selezionati utilizzando la funzione splice

Tuttavia, desidero rimuovere gli elementi dalla GRID utilizzando una funzione di giunzione.

Qui è la mia vecchia domanda link Angularjs, Applying Action on Selected Checkboxes in Table

lo voglio per eseguire utilizzando una funzione Splice.

In questo momento il problema che sto affrontando è di passare il valore dell'indice alla funzione in modo che l'elemento possa essere cancellato se quel valore di indice è selezionato/recuperato. Non sono sicuro di come aggiustarlo.

Sarebbe bello se qualcuno risolvesse il problema e fornisse un link dimostrativo al codice aggiornato.

Ecco il Plunker Link per quello che ho provato finora. Plunker link to show my execution

+0

gentilmente vedere sotto demo plunker per splice –

risposta

6

ho aggiunto ng clic per casella di controllo per rendere più lavorare

http://plnkr.co/edit/DSVPj3holsf4nhNvEMbQ?p=preview

+0

Grazie per la risposta, Il codice funziona per la prima volta, ma la volta successiva in cui seleziono una casella di controllo vengono rimossi 2 valori? –

+0

intendo la prima volta che carico la pagina -> seleziona la casella di controllo poi faccio clic su rimuovi, l'elemento rimuove, ma senza aggiornare la pagina quando faccio clic sull'altra casella di controllo e faccio clic per rimuoverla rimuovendo 2 elementi. –

+0

mi dispiace perdere una riga aggiornata il plunker ora –

7

Definizione metodo Array.splice JS (da MDN):

Array.splice (indice, howmany [, element1 [, ... [, elementN]]])

Quindi, la funzione remove dovrebbe essere scritto come:

$scope.remove = function(index){ 
    $scope.students.splice(index, 1); 
}; 

DEMO PLUNKER

EDIT:

ho pensato che si voleva rimuovere gli elementi facendo clic sul pulsante "x" con ng-click che punta al remove funzione.

per rimuovere gli elementi facendo clic sulla casella di controllo è necessario impostare casella ngModel a una proprietà degli studenti e di mettere un $ osservatore sugli studenti che rimuovere quegli studenti che hanno questo insieme di proprietà su true:

<tr class="color2" ng-repeat="student in students | filter:search | filter:new_search"> 
    <td>{{student.Rollno}} <input type="checkbox" ng-model="student.checked"> </td> 
    <td>{{student.Name}}</td> 
    <td>{{student.Uni}} <button ng-click="remove($index)">x </button></td> 
</tr> 
$scope.$watch('students', function(students){ 
    if(!students){ 
    return; 
    } 
    $scope.students = students.filter(function(student){ 
    return !student.checked; 
    }); 
}, true); 

PLNUKER

+0

già fatto, ma questo non rimuovere gli elementi selezionati dalla griglia. –

+0

Il collegamento plunker che ho allegato dimostra il contrario. – Stewie

+0

Signore, ho controllato il tuo link Plosker Demo, ho cliccato sulla prima casella di controllo e sull'ultima ma ho rimosso solo 1 elemento dalla griglia. –

Problemi correlati