Angular.then () is not recognized

I am trying to use .then () in my angular controller

angular.module('n2goApp') .controller('MainCtrl', function($scope, Products) { Products.get(). then( function ( response ) { $scope.data = response; console.log(response); $scope.totalPages = response.TotalPages; $scope.totalItems = response.total; $scope.products = response.data; $scope.currentPage = response.current_page; $scope.maxSize = 5; $scope.setPage = function(pageNo) { $scope.currentPage = pageNo; }; }); }); 

but brings me an error

 Error: Products.get(...).then is not a function 

Service

 angular.module('n2goApp') .service('N2goservice', function N2goservice() { // AngularJS will instantiate a singleton by calling "new" on this function }).factory('Products', ['$resource', function($resource) { var url = 'http://domain.com/api/products'; return $resource( url + '/:prodID', { bookId: '@prodID' }, { loan: { method: 'PUT', params: { prodId: '@prodID' }, isArray: false }, get:{ method: 'GET', params: { prodId: '@prodID', page:'@page' }, isArray: false } /* , method3: { ... } */ } ); }]); 

What am I doing wrong?

+6
source share
2 answers

You should get $ prom from the resource. Like this:

 Products.get().$promise.then(..) 
+18
source

Or you can use a different callback syntax

 Products.get({},function(response) { }); 
+7
source

Source: https://habr.com/ru/post/971459/


All Articles