gpt4 book ai didi

javascript - 使用 AngularJS 动态分析和修改 $http 中的对象属性

转载 作者:行者123 更新时间:2023-11-28 01:27:38 26 4
gpt4 key购买 nike

我有两个链接在一起的 $http 查询。第一个从第 3 方 API 获取艺术家姓名,然后使用 AngularJS 从第二个 $http 查询填充查询 URL,这将从另一个第 3 方 API 获取封面艺术。

我发现的问题是,当搜索以“THE”开头的艺术家姓名(例如 The Smiths)时,第一个 API 将响应“Smiths, The”,这不会被第二个 API 作为艺术家姓名。

既然如此,是否有某种方法可以处理收到的艺术家姓名以 ", the" 结尾的情况,并在将其解析为第二个 $http 查询之前将其更改回来?

相关代码如下:

$scope.getDetails = function (id) {
$http.get('http://api.discogs.com/artists/' + id).
success(function(data) {
$scope.artist = data;
});
$http.get('http://api.discogs.com/artists/' + id + '/releases?page=1&per_page=12').
success(function(data2) {
$scope.releases = data2.releases;
});
$scope.clicked = true;
$scope.sliding = true;
}
}
function ImageCtrl($scope, $http) {
$scope.image = 'img/record-default.png';
$http.get('http://ws.audioscrobbler.com/2.0/?method=album.getinfo&api_key=e8aefa857fc74255570c1ee62b01cdba&artist=' + $scope.artist.name + '&album=' + $scope.release.title + '&format=json').
success(function (data4) {
$scope.image = data4.album.image[2]['#text'];
}
);
};

最佳答案

将我的评论复制到答案中,因为它似乎有所帮助。

对于所提出的问题,我的建议是监视从 HTTP 请求返回的数据,然后在必要时在监视回调中对任何数据字段进行适当的调整。

$scope.$watch(function() {
return $scope.artist;
}, function() {
var pos = $scope.artist.name.toLowerCase().indexOf(', the');
if (pos != -1) {
$scope.artist.name = 'The ' + $scope.artist.name.slice(0, pos);
}
});

如果您发现自己稍后使用了大量顺序的、相互依赖的 HTTP 请求,我确实建议您使用 Promise 链。 :-)

关于javascript - 使用 AngularJS 动态分析和修改 $http 中的对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22494473/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com