2017-09-19 2 views
0

Ich habe wirklich Schwierigkeiten, einen Gegenstand von meinem Objekt zu entfernen. Das Objekt hat Schlüssel zufällig generiert, so dass es es ein wenig schwieriger macht, aber ich kann das Element aus dem Objekt nicht entfernen splice mit ... und ich bin nicht sicher, warum ..Gegenstand von Objekt entfernen

Das ist mein Ziel: $scope.todos.trackers

Dies ist, was $scope.todos wie folgt aussieht:

enter image description here

und das ist, was der trackers Teil des Objekts wie folgt aussieht:

enter image description here

Also, um zu versuchen und in dem tracker Objekt eines der Elemente löschen (zum Beispiel der letzten Element `Anmerkung:„endlich“, Wert: 200), das ist, was mein Code wie folgt aussieht:

function removeIndividualTracker(uid, item) { 
    angular.forEach($scope.todos.trackers, function(key, value) { 
     angular.forEach(key, function(el, val) { 
      console.log(key) 
      console.log(item) 
      if(key == item) { 
       console.log($scope.todos) 
       console.log($scope.todos.trackers) 
       $scope.todos.trackers.splice($scope.todos.trackers.indexOf($scope.todos.trackers[value]), 1); 
      } 
     }); 
    }); 
} 

aber es funktioniert nicht. Ich erhalte einen Fehler von $scope.todos.trackers.indexOf is not a function.

Irgendwelche Ideen? Ich weiß wirklich nicht, was ich tun soll. Danke!

+0

$ scope.todos.tracke rs ist kein Array – Sajeetharan

+0

Wenn Sie HTML verwenden, um removeIndividualTracker Funktion aufzurufen, laden Sie bitte HTML-Code auch es kann hilfreich sein –

Antwort

1

Sie erhalten diesen Fehler, weil Tracker kein Array, sondern ein Objekt ist. Versuchen Sie so etwas wie dieses ...

function removeIndividualTracker(key) { 
    delete $scope.todos.trackers[key];    
} 
+0

Yup! Das hat funktioniert ... danke! –

0

Sie diesen Fehler, weil Tracker ein object.You ist indexOf könnte verwendet werden, wenn Tracker ein Array von objects.You war mehr über sie hier lesen: MDN indexOf

Nun zurück zu Ihrer Frage kommen, können Sie löschen, indem Sie:

function removeIndividualTracker(key) { 
    delete $scope.todos.trackers[key];    
} 

Sie mehr lesen können etwa von hier aus löschen: MDN delete

Verwandte Themen