@tzak

Как сохранить таски в To Do App на Angular в localStorage, чтобы при повторном открытии страницы их заново не создавать?

Есть такое простенькое приложение. Надо чтобы при закрытии странички, дела сохранились. Я так понял надо через localStorage это организовать.
<!DOCTYPE html>
<html lang="en" ng-app="todoList">
<head >
	<meta charset="UTF-8">
	<title>Task1</title>
	<script src="../Libraries/angular.js"></script>
    <link href="../Libraries/bootstrap.css" rel="stylesheet" />
    <link href="../Libraries/bootstrap-theme.css" rel="stylesheet" />
    <script>

    	var todoList = angular.module("todoList", []);

    	todoList.controller("ToDoListCtrl", function ($scope) {
    		var model = [{
    		name:'Do', 
                description: "More", 
                date: '11.01.2015', 
                complited: true
    		    	}];

            $scope.data = model;

            $scope.addNewDo = function() {
            	$scope.data.push({
                    name: $scope.doName,
                    description: $scope.doDescription,
		    		date: $scope.doDate,
		    		complited: $scope.doComplite
                });
            }

        });

    </script>
</head>
<body>
	<div class="container" ng-controller="ToDoListCtrl">
		<div class="page-header">
  			<h1>ToDo list</h1>
		</div>

		<table class="table table-striped">
			<thead>
				<tr>
					<th>Name</th>
					<th>Description</th>
					<th>Date</th>
					<th>Complited</th>
				</tr>
			</thead>
			<tbody>
				<tr ng-repeat="item in data">
					<td>{{item.name}}</td>
					<td>{{item.description}}</td>
					<td>{{item.date}}</td>
					<td>{{item.complited}}</td>
				</tr>
			</tbody>
			
		</table>
		

		<form>
		  <div class="form-group">
		    <label for="exampleName">Name</label>
		    <input type="text" class="form-control" id="exampleName" placeholder="Enter name" ng-model="doName">
		  </div>
		  <div class="form-group">
		    <label for="exampleDate">Date</label>
		    <input type="date" class="form-control" id="exampleDate" placeholder="Date" ng-model="doDate">
		  </div>
		  <div class="form-group">
		    <label for="Description">Description</label>
		    <textarea class="form-control" rows="3" id="Description" ng-model="doDescription"></textarea>
		  </div>
		 
		  <div class="checkbox">
		    <label>
		      <input type="checkbox" ng-model="doComplite"> Complited?
		    </label>
		  </div>
		  <button  class="btn btn-default" ng-click="addNewDo()">Add</button>
		</form>
	</div>
	
</body>
</html>
  • Вопрос задан
  • 356 просмотров
Решения вопроса 1
DarthJS
@DarthJS
Изначально берешь данные из локалстореджа $scope.data = localStorage.getItem('Data');
$scope.data = $scope.data ? JSON.parse($scope.data) : []; - если локалсторедж пустой, вытягиваем пустой массив

после того как пушим новые таски, добавляем их в локалсторедж.
localStorage.setItem('Data', JSON.stringify($scope.data));

Попробуй
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы