-2

私はこのコードでいくつかの助けが必要です。私は "アクティビティ"を保存しています。 今のところ保存していますが削除しません。 (私はこのコードに単純な解決策が必要です)。Angular.jsがフィルタを使用してコレクションからアイテムを削除します

Angular.js

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

"あなたの投稿は主にコードであるようですが、詳細を追加してください..."は が混乱しています。それが格納していないということは何を意味しますか? インデックスオフ+スプライスを使用して特定のアイテムを削除できます。 – sniels

答えて

0

更新あなたのToDoService.removeItem(item);機能。アクティビティからアイテムを削除する場合は、array.splice(item)を使用して、アレイからアイテムを削除します。アイテムToDoService.removeItem(item);を削除したいが、あなたの機能はこれをしていない。 trueまたはfalseのいずれかの値を戻しています。機能の本体を変更してください。

関連する問題