I have the following service:
app.services.emailService = ['$http', '$sce', function ($http, $sce) {
return {
getMessage: function(messageId, callback) {
$http.get('/api/email/inbox' + '/' + messageId).then(function(response) {
response.data.message.updated_at = new Date(response.data.message.updated_at.replace(/-/g,"/"));
response.data.message.body = $sce.trustAsHtml(response.data.message.body);
return response.data;
});
}
};
}];
In my controller I am assigning the return value to a $scope.message
var so that I can display in the front end.
$scope.message
is undefined
$scope.getMessage = function(messageId) {
$scope.message = emailService.getMessage($scope.messages[messageId].id);
console.log($scope.message);
}
Your function getMessage has no return statement. But $http is asynchronous so it will return a promises.
And in your controller
If you want to clean your response in emailService you need to declare a promises by yourself.