您好我正在开发一个Ionic应用程序,我有一个数组,我想将项目推送到它,但是当我更改屏幕时不会丢失数据。另外,我不想使用数据库。还有其他方法吗?添加到现有数组并在本地存储该数组?
$scope.tasksCollection = [
{ info: 'Go studying', measured: 'no', total: 1, done: 1, id: 1 },
{ info: 'Go to the beach', measured: 'no', total: 1, done: 1, id: 2},
{ info: 'Run', measured: 'yes', total: 30, done: 15, id: 3}
];
$scope.tasksCollection.push({
info: $scope.taskInfo,
measured: $scope.result,
total: total,
done: 0,
id: $scope.tasksCollection.length
})
添加功能正常工作我只是在更改状态时松散数据。
答案 0 :(得分:2)
如果您想要在控制器之间保留数据,请使用服务或本地存储,如果您想要在退出应用程序时保留数据。
有关服务的进一步角度文件:https://docs.angularjs.org/guide/services
service.js:
angular.module('yourmodule.services')
.service('Tasks', [function () {
var collection = {
tasks: []
};
return {
getTasks : function(){ return collection.tasks; }
}
}]
);
controller.js
angular.module('yourmodule.controllers')
.controller('TaskCtrl', ['$scope', 'Tasks',
function($scope, Tasks){
$scope.Tasks = Tasks //Expose service to template
$scope.addTask = function(){
Tasks.getTasks().push({name : 'a new task'});
}
}]);
这是一个出色的库,可以为angularjs提供简单的本地存储访问:https://github.com/grevory/angular-local-storage
angular.module('yourmodule.controllers')
.controller('TaskCtrl', ['$scope', 'localStorageService',
function($scope, localStorageService){
$scope.collection = {
tasks : localStorageService.get('tasks') || [];
}
$scope.addTask = function(){
$scope.collection.tasks.push({name : 'a new task'});
localStorageService.set('tasks', $scope.collection.tasks);
}
}]);
答案 1 :(得分:0)
HTML5的locaStorage怎么样?
请参阅Using Local Storage上的离子公式。