angularjs – Angular JS $http未在范围内定义

前端之家收集整理的这篇文章主要介绍了angularjs – Angular JS $http未在范围内定义前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在过去几天一直在检查AngularJS,但我遇到了一个问题.我正在尝试使用$http.jsonp从Soundcloud API获取信息….但在我看来,$http未在$scope中定义.这是控制台告诉我的内容

Uncaught ReferenceError: $http is not defined main.js:18
(anonymous function) main.js:18
(anonymous function) sdk.js:1
window.SC.SC.Helper.merge.Dialog.AbstractDialog.AbstractDialog.handleReturn sdk.js:1
window.SC.SC.Helper.merge.Dialog._handleDialogReturn sdk.js:1
window.SC.SC.Helper.merge.connectCallback

这是我在main.js中进行调用的地方

angular.module('soundSelectahApp')
  .controller('MainCtrl',function ($scope) {
    $scope.apiKey = "#############################";
    $scope.results = [];
    $scope.init = function(){
        SC.initialize({
        client_id: $scope.apiKey,redirect_uri: "http://localhost:9000/callback.html"
        });
    // initiate auth popup
    SC.connect(function() {
        SC.get('/me',function(me) { 
        alert('Hello,' + me.username); 
    });

    $http.jsonp('https://api.soundcloud.com/me.json?client_id=' + $scope.apiKey + '&callback=JSON_CALLBACK').success(function(data) {
        console.log(data);
    }).error(function(error) {
        console.log(error);
    }); 
  });
 };
});

我忽略了什么吗?我不应该在我的$scope.init()中使用$http.jsonp()吗?这是否意味着我超出了范围?

解决方法

你需要在控制器中注入$http:

.controller('MainCtrl',function ($scope,$http) {

猜你在找的Angularjs相关文章