javascript - 在 Angular JS 中将 Javascript 对象转换为字符串

标签 javascript angularjs angularjs-scope

我是 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

解决这个问题基本上有两种方法。

  1. 当 promise 得到解决时,将值分配给 playlisturl
  2. 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/

相关文章:

Angularjs:$scope.variable与 View 不同步?

javascript - 如何将函数变成 Angular 范围函数

javascript - 如何检查 ng-show={{}} 表达式与值数组列表是否匹配?

javascript - 如何制作数字轮循环?

javascript - 如何使用 JavaScript 在按键时更新文本框

javascript - 当我按下 angularJS 中的按钮时如何更改变量?

javascript - AngularJS在不同型号上绑定(bind)2个单选按钮组

javascript - 使用 $scope AngularJS 仅显示数组中的最新值

javascript - 如何从Reactjs中的input\textArea获取 'breaks'?

javascript - 访问 JSON 字符串值