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

爷,独闯天下 提交于 2019-12-22 04:38:21

问题


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?


回答1:


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).



来源:https://stackoverflow.com/questions/24123589/angularjs-http-get-returns-undefined-and-http-is-not-a-function

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!