I m reaching out to you to get assistance on the $promise issue with AngularJS.
Here is the documentation information on $resource and it will be applicable to $http as
With $resource you define the API route and the parameters the API needs in order to process the request. Then, later you will need to supply the $resource with data and perform an action (get, save, query, remove, delete).
I personally prefer to work with $http as it's pretty cut and dry. The down-side is you can't pre-define the routes and parameters across your app.
Here's a pen that shows you both $resource and $http requests.
http://codepen.io/kenhowardpdx/pen/BNzXeE
angular.module('app', ['ngResource']);
MyService.$inject = ['$http', '$resource'];
function MyService ($http, $resource) {
var _this = this;
var Search = $resource('http://www.omdbapi.com/?tomatoes=true&plot=full&t=:searchTerm', {searchTerm:'@searchTerm'});
_this.httpSearch = function (searchTerm) {
return $http.get('http://www.omdbapi.com/?tomatoes=true&plot=full&t=' + searchTerm);
};
_this.resourceSearch = function (searchTerm) {
return Search.get({searchTerm: searchTerm}).$promise;
}
}
angular.module('app').service('MyService', MyService);
MyController.$inject = ['MyService'];
function MyController (MyService) {
var _this = this;
_this.type = 'http';
_this.searchFilms = function () {
if (_this.type === 'http') {
MyService.httpSearch(_this.searchTerm).then(function(_response) {
_this.results = _response.data;
});
} else {
MyService.resourceSearch(_this.searchTerm).then(function(_response) {
_this.results = _response;
});
}
}
}
angular.module('app').controller('MyController', MyController);`