Entfernen von Elementen aus einem Array mit Angular

8

Ja, es wurde schon einmal gefragt, und ich habe alle Antworten gelesen, aber nichts scheint zu funktionieren. Also frage ich nach einem zusätzlichen Paar Augen, um zu sehen, ob du irgendeine Singularität in meinem Code finden kannst, die es nicht so funktionieren lässt, wie es sollte. (Ich habe diesen Code und die Logik woanders ausprobiert und es scheint gut zu funktionieren). Keine Fehler in der Konsole übrigens

Ich versuche einfach, ein Objekt aus der Ansicht zu entfernen, wenn jemand auf das x auf dem Bild klickt.

Hier ist der Controller

%Vor%

und meine Sicht

%Vor%

Angular 1.5.8

Danke

    
LOTUSMS 11.11.2016, 13:58
quelle

4 Antworten

12

Sie können ein $index in Ihrer Klick-Funktion wie folgt übergeben.

%Vor%

und verwenden Sie $scope.galleries.splice(index, 1); innerhalb Ihrer Klickfunktion removeGalleryItem , stellen Sie sicher, dass Sie den Indexparameter auch so haben.

%Vor%

Hoffe das hilft ..

    
Punit Gajjar 14.11.2016, 12:53
quelle
4

Nach einigen Nachforschungen ist das Problem, dass galleryController irgendwo in Ihrem Markup definiert ist, aber die Elemente in der Galerie nicht innerhalb des Bereichs liegen, in dem dieser Controller definiert ist.

Dies bezieht sich auf Ссылка . In der Datei slidesController.js, wo galleryController definiert ist, mache ich hier eine Pause und der Code pausiert:

Ich habe hier auch einen Haltepunkt gesetzt, aber der Code hält nicht an, wenn ich auf eine Löschtaste klicke:

Wenn ich mir das Markup anschaue, kann ich kein Zeichen von ng-controller="galleryController" sehen, so dass ich nicht sehen kann, wie Galerien in ng-repeat aufgefüllt ist:

Vielleicht ist es dadurch:

Wenn es soweit ist, dann würde es Dinge erklären, da diese Richtlinie ihren eigenen Controller hat. Jede weitere Information würde helfen und ich bin mir sicher, dass wir das klären können.

    
camden_kid 14.11.2016 13:20
quelle
1

Wenn ich Ihre Frage richtig verstanden habe, wenn Sie ein bestimmtes Element sowohl aus DOM als auch aus Array löschen wollen, das diese speziellen Elemente enthält, können Sie Folgendes tun:

%Vor%

Angenommen, Sie wiederholen einige galleryItems und sie haben eine name -Eigenschaft.

Und auf Ihrem Controller:

%Vor%

Ich hoffe, ich war hilfreich.

    
AndreaM16 11.11.2016 14:13
quelle
1

Ich habe einige Änderungen vorgenommen, um dieses Problem zu beheben, und Sie können es unter dieser Link.

Das Problem hier war, dass es einen Tippfehler im HTML-Snippet gab, der removeGalleryItem(galleryItem, $event) aufruft. Der Parametername sollte gallery , nicht galleryItem lauten, da es kein solches Objekt mit dem Namen galleryItem gibt. Daher war der Parameterwert innerhalb dieser Methode undefined . Sobald ich es behoben habe, konnte ich das Galerie-Objekt innerhalb der removeGalleryItem Methode erhalten und der folgende Code funktionierte absolut gut:

%Vor%

Beachten Sie auch, dass ich das $ event-Attribut aus der Methodendeklaration und aus dem html-Methodenaufruf entfernt habe, da wir es bei dem oben genannten Ansatz nicht benötigten.

%Vor%     
TheCrinventor 21.11.2016 11:03
quelle

Tags und Links