AngularJS $http.get returns undefined and $http() is not a function

12,330

When using the array notation for injecting dependencies, the order of the arguments is important:

In your code:

['$routeParams',
 '$scope',
 '$http',
 function ($http, $scope, $routeParams)  {
    // $http argument        ==> $routeParams
    // $scope argument       ==> $scope (by coincidence)
    // $routeParams argument ==> $http
}

So, basically, you are doing $routeParams.get(), but $routeParams has no method get() (nor is it a function itself).

Share:
12,330
Admin
Author by

Admin

Updated on June 12, 2022

Comments

  • Admin
    Admin almost 2 years

    I'm building an app to dynamically load and display data from a database in AngularJS, but when I try to access my API (using either $http() or $http.get()), I receive errrors. $http.get() error: TypeError: undefined is not a function, $http() error: TypeError: object is not a function

    This specific error occurs in the code to dynamically load navigation tabs.

    The code for both in CoffeeScript:

    p4pControllers.controller 'navCtrl', [
        '$routeParams'
        '$scope'
        '$http'
        ($http,$scope,$routeParams) ->
            $http(
            method:'GET'
            url:'http://p4p-api.snyx.nl/tables'
        ).success (data) ->
            $scope.tabs = data
            return
        return
    
        $http.get('http://p4p-api.snyx.nl/tables').success (data) ->
           $scope.tabs = data
           return
        return
    ]
    

    Does anyone see what I'm doing wrong here?