Я пытаюсь получить данные с помощью фабрики ресурсов углов, но я не совсем понимаю, как правильно обрабатывать ответ.
Фабрика:
function dataFactory($resource, ENV) {
return $resource('http://foo/bar', {
accountId: '@accountId'
},
{
getData: {
method: 'POST',
url: 'http://foo/bar',
headers: {
'Content-Type': 'application/json'
}
}
}
);
}
В сервисе:
function fetchRealTimeData() {
return dataFactory.getData(requestParameters).$promise;
}
В моей директиве:
dataToApply = CdnAnalyticsService.fetchRealTimeData()
Когда я регистрирую dataToApply, я получаю следующее:
Я не могу использовать стандартную нотацию объектов для доступа к свойствам, возвращает undefined.
Как я могу получить доступ к свойствам возвращаемого объекта?
Ваш ресурс возвращает обещание. Вам необходимо решить это обещание для доступа к возвращенным данным.
function fetchRealTimeData () {
return dataFactory.getData(requestParameters)
.then(function (data) {
return data;
});
}
Как вы это делаете, вы возвращаете фактический объект обещания, а не разрешенные данные из обещания. Причина, по которой вы можете видеть данные в консоли, состоит в том, что она разрешилась к моменту ее выхода из системы, но когда вы пытаетесь получить к ней доступ с точечной нотацией, обещание все еще не разрешено, и вы получите неопределенный.