これは単純な問題のように思えますが、私は何か小さいものを見落とさなければなりません。
私はSpotify APIにアクセスしてアーティストを検索する機能を持っています。私は、通常のURLでこのルートにアクセスすると結果が返ってくることを知っています。 (例えばhttp://localhost:3001/search?artist=%27Linkin%20Park%27
)ここでそれを行うコード:
router.get('/search', function(req, res, next)
{
var artist = req.param('artist');
console.log("Artist: " + artist);
smartSpot.getArtistID(artist, function(data)
{
console.log("Data: " + data);
res.json(data.id);
});
});
そして、アーティストを検索するためのフロントエンド上のコードがあります。これはすべて角度で行われます。
angular.module('smart-spot', [])
.controller('MainCtrl', [
'$scope', '$http',
function($scope, $http)
{
$scope.createPlaylist = function()
{
var artist = $scope.artist;
console.log(artist);
window.open("/login", "Playlist Creation", 'WIDTH=400, HEIGHT=500');
return $http.get('/search?=' + $scope.artist) //this doesn't pass in the artist
.success(function(data)
{
console.log(data);
});
}
}
]);
$http.get()
は、$ scope.artist`値に正しく渡されません。
ああ経由でパラメータを渡すことができます。ダー。うん。私はそれが何か簡単だと分かっていました。本当にありがとう!なぜこれが機能していないのかわかりませんでした。 –
'$ q.reject(エラー);とは何ですか? –
$ qは、約束事を管理する角度サービスです。 $ scope.createPlaylistの呼び出しの後に何かしたいのであれば、error関数から$ q.reject()を返すといいでしょう。それが「約束」を作り出す方法です。それで$ scope.createPlaylist()を呼び出すことができます(function(response){}、function(error){})。したがって、createPlaylistが成功すると、チェーン内の次の関数が実行されます。 createPlaylistsが失敗すると、チェーン内の次の失敗関数が実行されます。 – Albtzrly