gpt4 book ai didi

javascript - 在 $http.get 请求中调用 AJAX 后,Angularjs 不将变量存储到 $scope

转载 作者:数据小太阳 更新时间:2023-10-29 05:44:15 26 4
gpt4 key购买 nike

我正在使用 angularjs,但我无法让以下 Controller 将 AJAX 请求返回到 Flickr 的数据保存到 $scope 变量中。 $http.get 调用本地保存的 json 文件。成功后,它使用 success() 中返回的 json 来确定对 Flickr API 的 AJAX 调用的适当 url。该调用成功后,我将数据记录到控制台。到目前为止一切顺利,它返回了一个包含三个对象的数组。但是,我正在尝试将该数组设置为 $scope 变量 ($scope.photos),以便我可以在我的 View 模板上对其进行迭代。但是,当我尝试在 html 中输出 {{photos}} 时,什么也没有。我怀疑这是一个 promise 问题,模板在 AJAX 从 Flickr 返回数据之前呈现,但我一直在翻阅文档但没有成功(略微查看了 $q)。我是 Angular 的新手,非常感谢您的见解。谢谢!

artistControllers.controller('PhotoController', ['$scope', '$http', '$routeParams', '$q', function ($scope, $http, $routeParams, $q){
$http.get('js/data.json').success(function(data){
$scope.artists = data;
$.ajax({
type : "GET",
dataType : "jsonp",
url : $scope.artists[$routeParams.itemId].flickr,
success: function(flickr){
$scope.photos = flickr.items;
console.log($scope.photos);
}
});
});
}]);

最佳答案

不要使用 jQuery.ajax。 Angular 的 $http 也可以做 JSONP。您可以阅读更多关于 here 的信息.

artistControllers.controller('PhotoController', ['$scope', '$http', '$routeParams', '$q', function ($scope, $http, $routeParams, $q){
$http.get('js/data.json').success(function(data){
$scope.artists = data;
$http.jsonp($scope.artists[$routeParams.itemId].flickr).success(function(data){
$scope.photos = flickr.items;
console.log($scope.photos);
});
});
}]);

关于javascript - 在 $http.get 请求中调用 AJAX 后,Angularjs 不将变量存储到 $scope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27008530/

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