私はAngularJSとイオンの発展に非常に新しいは、適切かつ効率的にJSONデータを保存し、終了時にそれを復元する方法を疑問に思っやアプリを開いています、と思います。JSONをこのIonic Appに保存して復元する最も効率的な方法は?
私が作るしようとしているアプリは、簡単なto-doリストアプリです。私はtasks
という名前のリストをJSON形式で持っています。このリストは、ユーザーが追加/削除することができます。私は彼らの予定リストを保存したい、今すぐ再開後にアプリケーションがリセットされるように。
私が作っているアプリのapp.jsがあり、保存したいJSONデータのtasks
はTaskService
サービスの一番下にあります。
// Ionic Checklist App
angular.module('checklist', ['ionic'])
.run(function ($ionicPlatform) {
$ionicPlatform.ready(function() {
if (cordova.platformId === 'ios' && window.cordova && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
cordova.plugins.Keyboard.disableScroll(true);
}
if (window.StatusBar) {
StatusBar.styleDefault();
}
});
})
.controller('TasksCtrl', function ($scope, $ionicModal, TaskService) {
$scope.tasks = TaskService.getTasks();
$ionicModal.fromTemplateUrl('newTaskModal',
{
scope: $scope,
animation: 'slide-in-up'
}).then(function (modal) {
$scope.modal = modal;
});
$scope.openNewTask = function() {
$scope.modal.show();
}
$scope.closeNewTask = function() {
$scope.modal.hide();
}
$scope.newTaskInput = {
taskName: '',
taskComments: ''
}
$scope.newTask = function() {
console.log($scope.newTaskInput.taskName);
TaskService.makeTask($scope.newTaskInput.taskName, $scope.newTaskInput.taskComments);
$scope.closeNewTask();
}
$scope.deleteTask = function (task) {
console.log(TaskService.getTasks());
TaskService.deleteTask(task);
}
})
.controller('TaskDetailCtrl', function ($scope, $stateParams, TaskService) {
$scope.taskId = $stateParams.taskId;
$scope.task = TaskService.getTask($scope.taskId);
})
.config(function ($stateProvider, $urlRouterProvider, $ionicConfigProvider) {
$ionicConfigProvider.navBar.alignTitle('center');
$stateProvider
.state('tasks', {
url: '/',
templateUrl: 'tasks',
controller: 'TasksCtrl'
})
.state('taskDetail', {
url: '/:taskId',
templateUrl: 'taskDetail',
controller: 'TaskDetailCtrl'
});
$urlRouterProvider.otherwise("/");
})
.service('TaskService', function() {
return {
//Sample Tasks
/*tasks: [
{
id: '1',
name: 'Milk',
comment: 'get it from the Frick Park Market'
},
{
id: '2',
name: 'Eggs',
comment: 'get from chicken'
}
],*/
tasks: [],
makeTask: function(name, comment) {
var newId = this.tasks.length + 1;
this.tasks.unshift({
id: newId,
name: name,
comment: comment
});
},
deleteTask: function (task) {
console.log(task);
console.log(this.tasks);
console.log(this.tasks.indexOf(task));
this.tasks.splice(this.tasks.indexOf(task), 1);
for (i = 0; i < this.tasks.length; i++) {
this.tasks[i].id = i+1;
};
},
getTasks: function() {
return this.tasks;
},
getTask: function (taskId) {
for (i = 0; i < this.tasks.length; i++) {
if (this.tasks[i].id == taskId) {
return this.tasks[i];
}
}
}
}
})
どのように? – Nikush
Nvm、cordovaにはこの機能が組み込まれています! – Nikush
遅延のお詫び!私は正しい睡眠に追いつく必要があった。 通常のWebアプリケーションでは、ノードをインストールしてから、コマンドラインから 'npm install node-persist'を実行します。私はCardovaについて私が見ているかもしれないことを知らなかった:) –