當我將新任務添加到我的任務管理器時,它會將其保存在localStorage中,但無法在不更新的情況下在頁面上顯示它。我需要使用$ watch還是別的東西?如何在AngularJS中使用localstorage?
代碼是在這裏:
$scope.retrievedTasks = JSON.parse(localStorage.getItem('tasks'));
$scope.addTask = function() {
console.log($scope.retrievedTasks)
console.log($scope.tasks)
if ($scope.newTaskName) {
$scope.tasks.push({
taskName: $scope.newTaskName,
status: false
});
localStorage.setItem('tasks', JSON.stringify($scope.tasks));
$scope.newTaskName = "";
}
};
<tr ng-repeat="task in retrievedTasks">
<td>
<button class="btn btn-danger" ng-click="deleteTask(task)">Delete</button>
<!-- $index-->
</td>
<td>{{task.taskName}}</td>
<td>
<input type="checkbox" ng-model="statusCheck"> </td>
<td style="{{setStyleToTd(statusCheck)}}">{{statusChecker(statusCheck)}}</td>
<td>
<button class="btn btn-primary" ng-click="editTask(task)">Edit</button>
</td>
</tr>
還我試圖用$ window.localstorage但它沒有工作:( – ttmcswg
你確實需要兩個範圍變量 - $ scope.retrievedTasks和$ scope.tasks如果沒有,只需更換$ scope.retrievedTasks與$ scope.tasks在html和js。 –