过去几天我一直在检查AngularJS,我遇到了一个问题。我正在尝试使用$http.jsonp
从Soundcloud API获取信息....但在我看来,$ $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);
});
});
};
});
我忽略了什么吗?我不应该在我的$http.jsonp()
中使用$scope.init()
吗?这是否意味着我不在$scope
?
答案 0 :(得分:12)
您需要在控制器中注入$ http:
.controller('MainCtrl', function ($scope, $http) {
答案 1 :(得分:12)
或
.controller('MainCtrl',['$ scope','$ http',函数($ scope,$ http) {
以防止代码缩小问题
答案 2 :(得分:0)
我收到类似的错误:
$ location未定义
我将$ location传递给控制器并解决了问题。
非常感谢