gpt4 book ai didi

javascript - 避免 AngularJS 中具有随机内容的无限摘要循环

转载 作者:行者123 更新时间:2023-11-28 19:45:24 25 4
gpt4 key购买 nike

我的基本结构是我有一个

<img ng-repeat="img in api.images" src="{{ img.url }}">

api 有一个图像 ID 列表,并且必须进行 HTTP 调用才能从服务器获取每个图像 ID 的 URL。但是,这些 URL 具有 HMAC 签名,因为它们会过期,并且每次发出请求时此签名都会不同。因此,api.get_image_urls 调用在执行时始终会返回不同的内容,本质上

get_image_urls: function() {
var deferred = $q.defer();
var that = this;
$http.post(this.url + "image_urls/", {
"image_ids": Object.keys(this.images)
})
.success(function(data) {
for (var image_id in data.images) {
that.images[image_id].url = data.images[image_id];
}
deferred.resolve();
});
return deferred.promise;
}

因此会触发无限摘要循环,因为网址每次都会更改。避免这种情况的最佳策略是什么?

最佳答案

在你的情况下,我会创建一些预构建器。每次 api.images 发生变化时都会触发摘要循环。要使其正常工作,请延迟运行其他进程(例如 5 秒)并创建 api.images 的副本。

类似于:

  $scope.copyOfImageApi = [];

// run instant loop every 5 sec
var rebuildImages = function() {
/* ... */

$scope.api.images = <get promise from service>

$scope.copyOfImageApi = angular.copy($scope.api.images);


$timeout(rebuildImages, 5000);
}

rebuildImages();

及之后:

<img ng-repeat="img in copyOfImageApi" src="{{ img.url }}">

在这种情况下,您的数组将每 5 秒更新一次,这应该可以防止摘要循环中断。

<小时/>

未检查语法

关于javascript - 避免 AngularJS 中具有随机内容的无限摘要循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24363465/

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