2015-02-10 5 views
1

У меня есть json-файл, содержимое которого я хотел бы сделать доступным в своем угловом приложении. Я читал in this thread об использовании $ http.get для загрузки json из файловой системы. Я не могу заставить это работать, я постоянно получаю «http://localhost:9000/jsonFile.json не найден», когда я запускаю код, который загружает его в консоли (через $ injector.get). Я использовал YEOMAN для создания моего приложения, и структура выглядит следующим образом:Загрузка из файловой системы в angularjs

app 
    --scripts 
    --services 
     --jsonLoader.js 
    --app.js 
    --index.html 
    --jsonFile.json 

Файл jsonLoader.js является

angular.module('jsonLoader', []) 
.service('loader', function($http){ 
    var schema = {}; 
    $http.get('jsonFile.json') 
    .then(function(res){ 
    schema = res.data; 
    }); 
    return schema; 
}); 

Я пробовал все комбинации путей, которые могли бы сослаться на расположение json-файл, но я все еще получаю 404, когда пытаюсь получить доступ к службе. Любая помощь была бы очень признательна!

ответ

1

Ваша проблема не связана с Угловой, но, скорее всего, ваша настройка Grunt. Ваш Grunt не просматривает файлы JSON, и поэтому ваше угловое приложение не имеет доступа к файлу JSON, к которому вы пытаетесь получить доступ.

Для того, чтобы JSON файлы доступны, вам необходимо добавить следующие строки в ваш файл пехотинец, который является частью Yeoman для Угловой:

livereload: { 
    options: { 
     livereload: '<%= connect.options.livereload %>' 
    }, 
    files: [ 
     '<%= yeoman.app %>/{,*/}*.html', 
     '<%= yeoman.app %>/{,*/}*.json', //added this line 
     '.tmp/styles/{,*/}*.css', 
     '<%= yeoman.app %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}' 
    ] 
+0

Это не исправить мою проблему. – biagidp

+0

Я солгал. Это устраняет проблему, когда я перемещаю файл в каталог yeoman.app. Woops! – biagidp

+0

О, я думал, что это уже в вашем каталоге приложений из вашей структуры выше, рад, что это работает. – Bricktop

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