Angular JS $ http未在范围中定义

gui*_*ian 3 jsonp soundcloud angularjs

我在过去几天一直在检查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
Run Code Online (Sandbox Code Playgroud)

这是我打电话的地方 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);
    }); 
  });
 };
});
Run Code Online (Sandbox Code Playgroud)

我忽略了什么吗?我不应该$http.jsonp()在我身上使用$scope.init()吗?这是否意味着我在外面$scope

Alw*_*ner 12

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

  .controller('MainCtrl', function ($scope, $http) {
Run Code Online (Sandbox Code Playgroud)


Ste*_*rov 12

要么

.controller('MainCtrl',['$ scope','$ http',函数($ scope,$ http){

防止代码缩小的问题