Я новичок в Angular и пытаюсь сделать приложение списка дел. Это простое приложение, которое использует локальное хранилище для хранения данных с помощью библиотеки jStorage.
Когда я добавляю задачу, значения обновляются, и появляется представление, но оно появляется только один раз. Во второй раз, когда я добавляю данные, он добавляется в localstorage, но не появляется в представлении. Чтобы получить представление, мне нужно перезагрузить страницу.
Controllers.taskController = function($scope, $compile, tasksFactory){
$scope.tasksObjects = tasksFactory.getData();
$scope.priority = 5;
$scope.taskId = 0;
$scope.addTask = function(){
var objectToSend = {};
objectToSend.title = $scope.task.title;
objectToSend.description = $scope.task.description;
objectToSend.priority = $scope.priority;
objectToSend.priorityClass = priorityClassArray[($scope.priority - 1)];
objectToSend.status = $scope.task.status;
objectToSend.taskId = $scope.taskId++;
tasksFactory.postData(objectToSend);
if($scope.tasksObjects === null){
$scope.tasksObjects = [];
}
}
};
angularApp.factory('tasksFactory', function(){
var tasksFactory = {};
tasksFactory.postData = function(ObjectToAdd){
var existingData = $.jStorage.get('tasks');
console.log(existingData);
if(existingData === null){
$.jStorage.set('tasks','[]');
existingData =[];
}
existingData.push(ObjectToAdd);
$.jStorage.set('tasks',existingData);
};
tasksFactory.getData = function(){
return $.jStorage.get('tasks');
}
return tasksFactory;
});
Рассмотрим, в конце addTask(), добавляя
$scope.tasksObjects = tasksFactory.getData();
Я предполагаю, что представление ссылается на tasksObjects.