Angular.js を使用して Last.fm API に HTTP リクエストを送信しようとしていますが、うまくいきません。Angular js ファイルを分離し、Codekit を使用して scripts.js と呼ばれる 1 つの js ファイルにコンパイルしました。ファイルがコンパイルされる順序は次のとおりです。
- angular.min.js
- app.js
- controllers.js
- services.js
私のファイルは次のようになります。
app.js
var app = angular.module('app', []);
controllers.js
app.controller('similarArtistsController', function($scope, similarArtistsService) {
$scope.artists = [];
similarArtistsService.getArtists().success(function(response) {
console.log(response);
});
});
services.js
app.factory('similarArtistsService', function($http) {
var similarArtists = {};
similarArtists.getArtists = function() {
return $http({
method: 'GET',
url: 'http://ws.audioscrobbler.com/2.0/?method=artist.getSimilar&api_key=MYLASTFMAPIKEY&format=json&limit=5&artist=Tame+Impala'
});
}
return similarArtists;
});
index.html
<body>
<div ng-app="app">
<div ng-controller="similarArtistsController"></div>
</div>
<script src="/js/compiled/scripts.js"></script>
</body>
コンソールに「Error: [$injector:unpr]」と表示されます。これは、コントローラーが依存関係を解決できないことを意味することがわかりました。私の場合、注入しているサービスと何か関係があると思いますが、エラーがどこにあるのかわかりません。