2013-06-28 5 views
5

Ich suchte nach einer Lösung, um Elemente aus dem Grid zu entfernen; deshalb habe ich die Frage schon vorher gepostet. Aber als ich zu der Zeit die Lösung von jemandem bekam, dachte ich, dass es das Problem löste, aber es benutzte eine Filtermethode.angularjs entfernen Ausgewählte Elemente mit Spleiß Funktion

Ich möchte jedoch die Elemente aus dem GRID mit einer Splice-Funktion entfernt werden.

Hier ist meine alte Frage Link- Angularjs, Applying Action on Selected Checkboxes in Table

ich es mit einer Splice-Funktion ausgeführt werden soll.

Im Augenblick ist das Problem, dem ich gegenüberstehe, den Indexwert an die Funktion zu übergeben, damit das Element gelöscht werden kann, wenn dieser Indexwert ausgewählt/abgerufen wird. Ich bin mir nicht sicher, wie ich das beheben soll.

Es wäre nett, wenn jemand das Problem löst und einen Demo-Link zum aktualisierten Code gibt.

Hier ist der Plunker Link für das, was ich bisher versucht habe. Plunker link to show my execution

+0

goodly siehe unten Plocker Demo für Spleiß –

Antwort

6

ich habe hinzugefügt ng Klick Checkbox es um die Arbeit

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

+0

Vielen Dank für Antworten, Ihr Code funktioniert zum ersten Mal, aber das nächste Mal, wenn ich ein Kontrollkästchen aktiviert, entfernt es 2 Werte? –

+0

Ich meine das erste Mal ich Seite laden -> ich Kontrollkästchen auswählen, dann klicke ich entfernen, Element entfernt, aber ohne Seite zu aktualisieren, wenn ich auf das andere Kontrollkästchen klicke und ich klicke entfernt entfernen 2 Elemente. –

+0

Sorry verpasste eine Zeile aktualisiert den Plunker jetzt –

7

Definition von JS Array.splice Methode (von MDN):

Array.splice (index, howMany [, element1 [, ... [, elementN]]])

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

DEMO PLUNKER

:

Also, Ihre remove Funktion sollte wie folgt geschrieben werden

EDIT:

Ich dachte, Sie die Einzelteile durch Klicken auf die Schaltfläche „x“ mit ng-Klick zeigt auf remove Funktion entfernen wollte.

Um die Elemente, indem Sie auf das Kontrollkästchen entfernen Sie Checkbox ngModel ein Student Eigenschaft sollte und als ein $ Beobachter auf Studenten stellen, dass die Teilnehmer, die diese Eigenschaft festgelegt auf true entfernen würde:

<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

bereits getan haben, aber dies nicht die ausgewählten Elemente aus dem Grid entfernen. –

+0

Der Plunker Link, den ich beigefügt habe, beweist das Gegenteil. – Stewie

+0

Sir, ich habe Ihren Demo-Plunker-Link überprüft, ich klickte auf das erste Kontrollkästchen und auf das letzte, aber es entfernte nur 1 Element aus dem Raster. –