Ionic-Angular Js - 在本地存储数组

时间:2015-05-10 15:01:11

标签: javascript arrays angularjs ionic-framework ionic

您好我正在开发一个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
    })

添加功能正常工作我只是在更改状态时松散数据。

2 个答案:

答案 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上的离子公式。