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