我在过去几天一直在检查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) {