Angular Js : '$q.defer is not a function' error

12,017

You have wrong service definition:

factory('restservice', ['$rootScope','$http', '$q', '$log',
function($rootScope,$q, $http) {

Should be:

factory('restservice', ['$rootScope','$http', '$q', '$log',
function($rootScope,$http, $q, $log) {

Common mistake :)

Share:
12,017
UzUmAkI_NaRuTo
Author by

UzUmAkI_NaRuTo

Updated on June 05, 2022

Comments

  • UzUmAkI_NaRuTo
    UzUmAkI_NaRuTo almost 2 years

    After Refering this Link , I am trying to get JSON data into my angular service.

    Service:

    .factory('restservice', ['$rootScope','$http', '$q', '$log',
    function($rootScope,$q, $http) {
    return {
        getData: function() {
            var defer = $q.defer();
            $http.get('xyz.com/abc.php', { cache: 'true'})
            .success(function(data) {
                defer.resolve(data);
            });
    
            return defer.promise;
          }
    };
    }])
    


    Controller:

    .controller('RestaurantsCtrl', function ($scope,$http, restservice,restViewservice){
    
          restservice.getData().then(function(data) {
          $scope.Restaurants = data;
        });
    
    })
    


    After Implementing this console says '$q.defer is not a function'.

    What's the issue here? Please Help ...!! Am new to Angular Js so forgive if something is wrong.