Задать вопрос
@beduin01

Правильно ли я читаю JSON?

Пытаюсь считать JSON в переменную, однако вылетает ошибка. Вот сам код:

$scope.questions = $http.get('js/questions-content.json').success(function(response) {
         return response.data;
        // console.log(response.data);
    });


По идее return должен присваивание $scope.questions выполнять, верно?

Ошибка вот такая:
SyntaxError: Unexpected token ,
    at Object.parse (native)
    at fromJson


JSON сам такой:

[{"id":1},{"id":2}]

В чем может быть проблема?
  • Вопрос задан
  • 189 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Решения вопроса 1
@bromzh
Drugs-driven development
Если ты вызываешь success, то в аргументе колбека уже не response, а response.data.
Если ты вызываешь then, то там response.
Мог бы сам попробовать вывести аргумент коллбека success, прежде чем спрашивать.

Ну и из промиса ты получаешь не значение, а лишь промис. Так что в переменной $scope.questions будет промис результата, а не сам результат.
$http.get('js/questions-content.json').success(function(questions) {
         $scope.questions =  questions;
    });
// Но лучше так:
$http.get('js/questions-content.json').then(function(response) {
         $scope.questions =  response.data;
    });
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
В том, что это выполняется асинхронно:
$http.get('js/questions-content.json').success(function(response) {
         return response.data;
        // console.log(response.data);
    });

Когда вы выполняете присваивание объект response еще не получен, нужно так:
$http.get('js/questions-content.json').success(function(response) {
         $scope.questions =  response.data;
    });
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы