2015-08-17 4 views
0

Я пытаюсь сохранить данные JSON в своем приложении Ionic для локального хранилища устройств. Я хотел бы использовать плагин ngCordova File. Кажется, я не могу найти учебники или примеры приложений, которые используют точные методы, которые у них есть в docs.Как я могу использовать ngCordova File api для сохранения JSON?

Кто-нибудь использовал этот плагин прежде, чем сохранить данные JSON? Как ты сделал это?

ответ

2

ngCordova отнимает много уродства при записи файлов с использованием API-интерфейса файлового администратора.

Этот пример был заимствован из docs, и использует writeFile(path, file, data, replace) где путь определяется по cordova.file.DIRECTORY_TYPE, файл является строка имени файла, данных является строка представление данных (поэтому мы будем использовать JSON.stringify()) , Заменить - это логическое значение, которое просто удалит существующее содержимое файла.

//Write using cordova.file.dataDirectory, see File System Layout section for more info 
var json = {"test": "hello world"} 
$cordovaFile.writeFile(cordova.file.dataDirectory, "hello.json", JSON.stringify(json), true) 
    .then(function (success) { 
    // success 
    }, function (error) { 
    // error 
    console.log(error); //error mappings are listed in the documentation 
    }); 

Для контроллера, предположим, что мы используем controllerAs синтаксис это может выглядеть примерно так:

angular.controller("...",['$cordovaFile' function ($cordovaFile) { 
    var vm = this; 
    vm.writeFile = function (fileName) { 
    ionic.Platform.ready(function(){ 
     // will execute when device is ready, or immediately if the device is already ready. 
     var json = {"test": "hello world"} 
     $cordovaFile.writeFile(cordova.file.dataDirectory, "hello.json", JSON.stringify(json), true) 
     .then(function (success) { 
      // success 
     }, function (error) { 
      // error 
      console.log(error); //error mappings are listed in the documentation 
     }); 
    }); 
    }; 
}); 
+0

Спасибо за ответ. Можете ли вы показать мне, как добавить это в контроллер как функцию? Например, я хочу вызвать эту функцию, когда нажата кнопка сохранения. Как бы вы это добавили? И этот код должен быть внутри функции $ ionicPlatform.ready() для работы? [Здесь] (http://stackoverflow.com/questions/32056322/cordovafile-method-does-nothing-when-called) - это код, который я пытаюсь использовать. – JoshPMP

Смежные вопросы