我在访问嵌套 $http.get 中定义的作用域变量时遇到问题。这是我的 Controller 代码(它与部分 $routeProvider
相关)
//Content controller
app.controller('Content', ['$scope', '$routeParams', '$http', function($scope, $routeParams, $http) {
$http.get('wp-json/wp/v2/posts?slug=' + $routeParams.slug).success(function(res) {
$scope.post = res[0];
document.querySelector('title').innerHTML = res[0].title.rendered + ' | Going Solo ';
console.log(res);
$http.get('wp-json/wp/v2/posts?filter[artists]=' + $scope.post.pure_taxonomies.artists[0].slug + '&exclude=' + $scope.post.id).success(function(res) {
if (res.length > 1) {
$scope.related = res;
}
else {
$scope.related = res[0];
}
console.log(res);
});
}).error(function(res, status) {
if (status === 404) {
$scope.is404 = true;
document.querySelector('title').innerHTML = 'Page not found | Going Solo';
$scope.errorMessage = 'Error: ' + res[0].message;
}
});
}]);
基本上,我想检索与内容 Controller 中显示的歌曲相关的所有歌曲(第一个 $http.get
)。为了链接所有歌曲,我使用了名为“艺术家”的自定义分类法。当然,我需要这是异步的,所以我在第一个中做了一个新的 $http.get
。在此请求中,我过滤当前帖子的分类法别名 ($scope.post.pure_taxonomies.artists[0].slug
),并添加一个过滤器,通过添加帖子 ID 来排除帖子本身。通过查看控制台日志,这是正常工作的。它为第一个请求返回一个数组(1),为第二个请求返回一个数组(2)(具有正确的数据)。
问题是当我尝试在我的部分中访问第二个 $http.get
时。
如果我尝试这个ng-repeat
:
<div ng-repeat="songrel in related">
<div ng-bind-html="songrel.title.extended"></div>
</div>
没有显示任何内容。很简单,它不进入这个循环,所以我猜他不认识data.lated
。我错过了什么?
最佳答案
它找不到 data.lated
,因为没有声明 $scope.data 变量。尝试仅相关
,即
<div ng-repeat="songrel in related">
<div ng-bind-html="songrel.title.extended"></div>
</div>
关于javascript - 嵌套http get中的Angularjs范围变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44142271/