我是 angularJS 的新手,我对下面的代码有一些问题。基本上,我想要实现的目标是在 Spotify API 中搜索术语并检索给我的第一个播放列表,然后获取播放列表的 URI 并将其连接到要在页面中显示的嵌入 url。
我似乎无法让 $scope.spotifySearch 对象以字符串格式进入 $scope.playlisturi 范围。任何帮助将不胜感激。
app.controller('MainCtrl', function ($scope, $sce, Spotify) {
$scope.spotifySearch = Spotify.search('Top 40', 'playlist').then(function (data) {
return (data.playlists.items[0].uri);
});
$scope.trustSrc = function(src) {
return $sce.trustAsResourceUrl(src);
}
$scope.playlisturlfragment = "https://embed.spotify.com/?uri=";
$scope.playlisturi = $scope.spotifySearch;
$scope.playlisturl = {src:$scope.playlisturlfragment+$scope.playlisturi}
});
最佳答案
您正在向 spotifySearch
分配一个 promise,我认为您想要的是搜索返回的 uri
。
解决这个问题基本上有两种方法。
- 当 promise 得到解决时,将值分配给
playlisturl
。 - 当
spotifySearch
更改时,将值分配给playlisturl
。
这是第一种方法。
$scope.playlisturlfragment = "https://embed.spotify.com/?uri=";
Spotify.search('Top 40', 'playlist').then(function (data) {
$scope.playlisturl = {src:$scope.playlisturlfragment+data.playlists.items[0].uri}
});
另一种方法是观察 spotifySearch
的变化。
$scope.playlisturlfragment = "https://embed.spotify.com/?uri=";
Spotify.search('Top 40', 'playlist').then(function (data) {
$scope.spotifySearch = data.playlists.items[0].uri;
});
$scope.$watch('spotifySearch',function(value) {
if(!value) return;
$scope.playlisturl = {src:$scope.playlisturlfragment+value};
});
关于javascript - 在 Angular JS 中将 Javascript 对象转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33238515/