Как разобрать ответ Angular $ http, в котором нет экранированной двойной кавычки? - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть этот объект, возвращаемый из конечной точки поиска, который имеет атрибут, который может иметь значение как таковое (обратите внимание на двойную кавычку в строке):

{
     ...,
    description: "24" curtain rod",
     ...
}

Когда я иду, чтобы захватить ответ с:

promise
  .then(function(data) {
    vm.displayData = data.search_results;
  })

Примечание: JSON возвращается правильно, экранируется как таковой:

{..., "description": "24\" curtain rod", ... }

Моя проблема в том, что я не могу до конца жизни понять, почему, когда я тогда делаю это:

console.log(vm.displayData)

атрибут description установлен на undefined в консоли браузера. Если я просто ссылаюсь на этот атрибут напрямую (предполагая его первый в массиве) в блоке .then(), используя data.search_results[0].description, он будет правильно печатать 24" curtain rod. Я нашел потенциальное исправление путем определения атрибута transformResponse в моем запросе $http, но я чувствую, что это гораздо более простой и менее сложный способ. Что бы это могло быть?

PS: Для некоторого, возможно, полезного контекста объект vm.displayData передается в UI-Grid для визуализации таблицы данных. Ячейка таблицы, в которой отображается описание, также доступна для редактирования в виде элемента md-input.

...