gpt4 book ai didi

jquery - 如何让 ng-click 函数等待 jQuery 脚本完成后再执行?

转载 作者:行者123 更新时间:2023-12-01 04:46:43 25 4
gpt4 key购买 nike

我需要先清除当前项目的 ul 列表,然后再对 Flickr 的 API 进行 REST 调用,然后再用 20 个项目填充该列表。目前,这些项目正在同时运行,这导致列表中尽管获取了 20 个新项目,但仍保留 0 个项目。

REST 调用当前位于我的一项服务中。从我的搜索中,我找到了两种可能的解决方案,$timeout$viewContentLoaded,或者可能将它们组合成一个解决方案。但是,就我而言,我无法弄清楚如何实现它才能正常工作。

在执行其他操作之前执行的脚本:

JQuery 代码:

$('#fav-tags-list').on('click', 'li', function() {

$('#images-list').children('li').remove();
$('#fav-tags-list li').removeClass('selected');
$(this).addClass('selected');
});

ng-click 调用的函数 (getImages):

flickrApp.service('shared', function() {
var imageGroup = [];

return {
getImages: function(tag) {

if (tag === false) {
var options = {
format: 'json',
tagmode: 'ANY'
}
}
else {
var options = {
format: 'json',
tags: tag,
tagmode: 'ANY'
}
}

$.getJSON('https://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?', options, function(data) {

$.each(data.items, function(i, image) {

imageGroup.push(data.items[i]);
});
});

return imageGroup;
}
};
});

ng-click 的标记(剥离属性):

<ul id="fav-tags-list">
<li ng-repeat="tag in tagsList" ng-bind="tag"
ng-click="shared.getImages(tag)"></li>
</ul>

编辑:根据要求,我是如何使用该服务的:

flickrApp.controller('flickrCtrl', ['$scope', '$firebase', 'shared', function($scope, $firebase, shared) {

$scope.shared = shared;

//Get a set of images on pageload
$scope.imageGroup = shared.getImages(false);

}]);

我什至不确定这就是我在这里寻找的东西,所以我希望得到一些指导。

最佳答案

如果你想在调用函数时延迟,你可以这样做:

<html>
<button ng-click="do()"></button>
</html>

<script>

$scope.do = function() {
$timeout( function(){
//your code here
},10000, true );
}
<script>

或者做同样事情的更有效方法是用 timeout() 包装它

关于jquery - 如何让 ng-click 函数等待 jQuery 脚本完成后再执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28386929/

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