2016-08-25 5 views
1

У меня нет опыта работы с интерфейсом, поэтому, пожалуйста, несите меня.Загрузите файл JSON в браузере

У меня есть локальное приложение с угловым расположением в браузере (нет back-end), и я хочу загрузить файл JSON, чтобы я мог показывать загруженные данные на графиках. Так как я не знаю, могу ли я только fs.readFile от Angular, я выбрал ng-file-upload, чтобы загрузить файл в отличном виде (из браузера файлов). Дайте мне знать, если это не правильный инструмент, хотя ...

Итак, я скопировал код у официального JS Fiddle on the repo. Пришлось немного изменить его, чтобы я мог что-то загрузить - удалить проверки.

var app = angular.module('app', ['ngFileUpload']); 

app.controller('fileUploader', ['$scope', 'Upload', '$timeout', function ($scope, Upload, $timeout) { 
    $scope.uploadFiles = function(file, errFiles) { 
    $scope.f = file; 
    $scope.errFile = errFiles && errFiles[0]; 
    if (file) { 
     file.upload = Upload.upload({ 
     url: 'https://angular-file-upload-cors-srv.appspot.com/upload', 
     data: {file: file} 
     }); 

     file.upload.then(function (response) { 
     $timeout(function() { // don't know why this timeout 
     $scope.fileReady = true; 
     file.result = response.data; 

     // can't figure out what to do with this!!! 
     console.log('response.data:\n', JSON.stringify(response.data.result, null, 2)); 
     }); 
     }, function (response) { 
     if (response.status > 0) 
      $scope.fileError = response.status + ': ' + response.data; 
     }); 
    } 
    }; 
}]); 

Ответ выходит как объект, я не могу сделать много с:

[ 
    { 
    "fieldName": "file", 
    "name": "my-awesome-data.json", 
    "size": "364077" 
    } 
] 

Как получить фактические данные, которые были загружены/разобрать файл JSON?

+1

Да, возможно, 'нг-файлов uploader' не является правильным инструментом для локальных файлов. Вот гораздо более простое решение: http://stackoverflow.com/questions/26165919/filereader-not-loading-file-properly-using-angularjs – sakovias

ответ

2

Попытка получить содержимое файла, используя $ http.get как:

$http.get(response.data).success(function(data) { 
    console.log(data); 
});