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

标签 javascript arrays angularjs ionic-framework

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

添加功能运行良好,只是在更改状态时丢失了数据。

最佳答案

如果您想在 Controller 之间保留数据,请使用服务或本地存储(如果您希望即使在退出应用程序时也保留数据)。

服务示例

有关服务的更多 Angular 文档: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);
   }
}]);

关于javascript - Ionic- Angular Js - 在本地存储数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30152925/

相关文章:

javascript - ng-click 函数无法调用服务

javascript - 如何缩小AngularJS中的字符串数据组?

javascript - 错误对象, native 和自定义,如何区分?

javascript - 在 After Effects 中以编程方式更改 TextLayer 的文本

c - 使用空格字符从c中的字符串数组中获取单词

javascript - 如何很好地 .join() 数组

javascript - 用户界面路由器 : How should you prevent toState from showing while you're checking authorization?

javascript - ajax中的json响应是正确的,但内容没有更新?

javascript - 如何将 div 锁定(卡住)到 jquery 应用程序中?

Java : Object access with private fields