2015-10-30 3 views
2

Я пытаюсь загрузить локальный файл JSon сохраненный так:

WWW/JSON/config.json

var path = '/android_asset/www/json'; //<-i have tried lots of differnt path's without success 
var fileName = "config.json"; 
console.log('url: '+path+fileName); 
console.log('file there?: '+angular.toJson($cordovaFile.checkFile(path, fileName))); 

$cordovaFile.readAsText(path, fileName).then(function (success) { 
    console.log('read success: '+angular.toJson(success)); 
}, function (error) { 
    console.log('read error: '+angular.toJson(error)); 
}); 

Я использую ионный с ngCordova плагин $ cordovaFile ... У кого-нибудь есть совет? Я просто хочу, чтобы отправить мое приложение с JSON «по умолчанию» нагруженная ...

ответ

3

Вы не можете прочитать файл в папке www с помощью $cordovaFile с этим путем, $cordovaFile получить доступ к файлу через file:// протокола.

Поскольку файл json по умолчанию находится в папке www. Вот несколько способов сделать это:

  1. Скопируйте все содержимое JSON и поместить его внутри файла JavaScript, и получить доступ к этому файлу в качестве глобальной переменной. (Необходимо включить этот файл в index.html)

    var json = {myKey: "myValue"}; 
    
  2. Использование $resource в качестве службы (не тестировался):

    $resource('file:///android_asset/www/json/myJson.json', {}, { 
        query: { method: 'GET', params: {}, isArray: true } 
    }) 
    
  3. Использование $http внутри контроллера:

    $http.get('json/myJson.json') 
    .success(function (data) { 
        // The json data will now be in scope. 
        $scope.myJsonData = data; 
    }); 
    
Смежные вопросы