/ / Função de serviço de chamada no retorno de chamada de recurso em AngularJS - angularjs, angularjs-service

Chamando a função de serviço no callback de sucesso de recurso em AngularJS - angularjs, angularjs-service

Eu tenho um serviço que faz uma chamada REST. Quando a chamada de repouso estiver concluída (isto é, os dados estiverem disponíveis), desejo chamar a função do serviço que processa esses dados.

.service("EventService", function(eventRestApi, $scope) {
var internalData = { messages : [], headers: [], consolidatedEvents : {} }
return {
loadEvents : function(beginTimeMillis, endTimeMillis) {
this.getEvents(beginTimeMillis, endTimeMillis, internalData, null)
.then(function(result){
internalData.consolidatedEvents = this.consolidateEvents(internalData.events)
})
},
getEvents : function() {...},
consolidatedEvents : function() {...},
}

Eu recebo um erro dizendo que this não tem consolidateEvents. Como faço para acessar uma função no meu serviço em um retorno de chamada? Estou me aproximando desse problema errado?

Respostas:

2 para resposta № 1

Em um retorno de chamada, "isto" se torna seu retorno de chamada, portanto, para acessá-lo, você pode vincular o escopo pai em uma variável.

Eu recomendo que:

.service("MyService", function () {
var that = this;
return {
myCallback : function () {
that.myMethod();
}
}
});