2013-06-28 14 views
5

Szukałem rozwiązania, aby usunąć elementy z siatki; dlatego wcześniej napisałem to pytanie. Ale kiedy dostałem rozwiązanie od kogoś w tym czasie, myślałem, że rozwiązało problem, ale używało metody filtrującej.angularjs remove Wybrane elementy przy użyciu splice Funkcja

Jednak chcę, aby elementy zostały usunięte z GRID za pomocą funkcji Splice.

Oto mój stary Pytanie link Angularjs, Applying Action on Selected Checkboxes in Table

chcę go wykonać przy użyciu funkcji Splice.

W tej chwili problemem, przed którym stoję, jest przekazanie wartości indeksu do funkcji, aby element mógł zostać usunięty, jeśli ta wartość indeksu zostanie wybrana/pobrana. Nie jestem pewien, jak to naprawić.

Byłoby miło, gdyby ktoś rozwiązał problem i podał link demo do zaktualizowanego kodu.

Oto link Plunkera za to, co próbowałem do tej pory. Plunker link to show my execution

+0

proszę zobaczyć poniżej demo plunkera dla splice –

Odpowiedz

6

dodałem ng kliknięciem pole wyboru, aby uczynić go pracy

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

+0

Dziękuję za odpowiedź, Twój kod działa świetnie po raz pierwszy, ale następnym razem, gdy zaznaczę pole wyboru, usunie 2 wartości? –

+0

mam na myśli po raz pierwszy ładuję stronę -> i zaznaczam pole wyboru, a następnie klikam usuń, element usuwa, ale bez odświeżania strony, gdy klikam na inne pole wyboru i klikam usuń, usuń 2 elementy. –

+0

Przepraszam, że brakowało jednej linii, zaktualizowałem teraz plunkera –

7

Określenie sposobu Array.splice JS (od MDN)

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

więc czynność remove powinien być zapisany jako:

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

DEMO PLUNKER

EDIT:

Pomyślałem, że chcesz usunąć elementy, klikając przycisk "X" NG-click wskazując remove funkcji.

Aby usunąć elementy, klikając pole wyboru należy ustawić pole wyboru ngModel do nieruchomości studentów i ponad umieścić $ obserwatora na studentów, że usunięcie tych studentów, którzy mają tę właściwość zestaw 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

już to zrobiłem, ale to nie usunie wybranych elementów z siatki. –

+0

Łącznik plunkera, który załączam, dowodzi inaczej. – Stewie

+0

Sir, sprawdziłem twój link Demo Plunker, znalazłem na pierwszym polu wyboru i na ostatnim, ale usunąłem tylko 1 przedmiot z siatki. –

Powiązane problemy