Angular TypeError:无法读取属性' get'未定义的

时间:2015-02-03 22:48:00

标签: javascript angularjs angular-ui-router

我正在使用$http.get。所有注射似乎都已到位,但我收到错误: TypeError: Cannot read property 'get' of undefined

已更新

app.controller("MyCtrl", ['$scope', '$state', '$http', function ($scope, $state, $http) {
        $scope.getEntryStateUrl = function(apiUrl){
            $http.get(apiUrl).success(function(data){/*...*/}));

    }

}

更新

感谢您指出success和注射。现在我面临this problem.

3 个答案:

答案 0 :(得分:2)

你是注入$ state并尝试使用$ stateProvider作为成功回调的参数? $ http的成功方法自动分配成功参数:

  

成功(功能(数据,状态,标题,配置){});

所以当你这样做时:

success(function(data, $stateProvider){});

您将$ http调用返回的状态对象分配给变量$ stateProvider。请参阅:https://docs.angularjs.org/api/ng/service/$http

在成功方法结束时,您还有一个额外的括号)

$http.get(apiUrl).success(function(data){/*...*/}));

应该是:

$http.get(apiUrl).success(function(data){/*...*/});

如果您在问题中真正提到了您想要完成的任务,那将会有所帮助。

答案 1 :(得分:0)

检查控制器功能之前声明的变量名称。你缺少$ stateProvider

app.controller("MyCtrl", ['$scope', '$state', '$http', function ($scope, $state, $http) {

答案 2 :(得分:0)

您的功能会收到inputUrl,但您会将apiUrl传递给$http.get