-2

Ich brauche etwas Hilfe mit diesem Code, ich "Aktivitäten" speichern und entfernen. Momentan wird gespeichert, aber nicht entfernt. (Ich brauche nur eine einfache Lösung für diesen Code).Angular.js entfernen Artikel aus Sammlungen mit Filter

Angularjs

angular 
.module("TodoList",["LocalStorageModule"]) 
.factory("TodoService", function(localStorageService){ 

    var todoService = {}; 
    todoService.key = "angular-todolist"; 

    if(localStorageService.get(todoService.key)){ 
     todoService.activities = localStorageService.get(todoService.key); 
    } else { 
     todoService.activities = []; 
    } 

    todoService.add = function(newActv){ 
     todoService.activities.push(newActv); 
     todoService.updaLocalStorage(); 
    }; 

    todoService.updaLocalStorage = function(){ 
     localStorageService.set(todoService.key, todoService.activities); 
    }; 

    todoService.clean = function(){ 
     todoService.activities = []; 
     todoService.updaLocalStorage(); 
    }; 

    todoService.getAll = function(){ 
     return todoService.activities; 
    }; 

    toDoService.removeItem = function (item) { **Creating function for remove** 
     toDoService.activities = toDoService.activities.filter(function (activity) { 
      return activity !== item; 
     }); 
     toDoService.updateLocalStorage(); 
     return toDoService.getAll(); 
    }; 

    return toDoService; 
}) 
.controller("TodoListCtrl", function($scope, todoService){ 

    $scope.todo = todoService.getAll(); 
    $scope.newActv = {}; 
    $scope.addActv = function(){ 
     todoService.add($scope.newActv); 
     $scope.newActv = {}; 
    } 
    $scope.removeActv = function (item) {  **Scope for remove** 
     $scope.todo = ToDoService.removeItem(item); 
    } 
    $scope.clean = function(){ 
     todoService.clean(); 
    } 
}); 

Html

<!DOCTYPE html> 
<html ng-app = "TodoList"> 
<head> 
    <meta charset="utf-8"> 
    <title></title> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.2/angular.min.js"></script> 
    <script src = "todoctrl.js"></script> 
    <script src = "angular-local-storage.min.js"></script> 
</head> 
<body ng-controller = "TodoListCtrl"> 
    <ul> 
     <li ng-repeat = "actividad in todo"> 
      {{actividad.descripcion}} - 
      {{actividad.fecha | date: 'short'}} - 
      <a href="#" ng-click = "removeActv(actividad)" style="color:red">x</a> **Where is removing** 
     </li> 
    </ul> 
    <form ng-submit = "addActv()"> 
     <input type="text" ng-model = "newActv.descripcion"> 
     <input type="datetime-local" ng-model = "newActv.fecha"> 
     <input type="submit" value = "Guardar"> 
    </form> 
    <button ng-click = "clean()">Limpiar</button> 
</body> 
</html> 
+0

"Es sieht aus wie Ihr Beitrag ist meist Code; bitte fügen Sie weitere Details hinzu. ..." ist verwirrend. Was meinst du damit nicht speichern? Sie können index off + splice verwenden, um den bestimmten Artikel zu entfernen. – sniels

Antwort

0

Update Ihre ToDoService.removeItem(item); Funktion. Wenn Sie ein Objekt aus der Aktivität entfernen möchten, verwenden Sie array.splice(item), um ein Objekt aus einem Array zu entfernen. Sie möchten ein Element ToDoService.removeItem(item); Funktion entfernen, aber Ihre Funktion tut dies nicht. Es gibt einen Wert zurück, der entweder wahr oder falsch ist. Ändere deinen Funktionskörper.