我想在初始化我的轮播后在jQuery中执行“each”功能。但是,在ngOnInit()函数中,我有一个使用http.get的异步任务来获取初始化轮播所需的数据。
我的代码:
ngOnInit() {
this.list();
$('.carousel').carousel();
}
list(): void {
this.http.get(`http://localhost:8082/api/list`)
.subscribe(response => {
this.c= response.json().data;
}, error => {
this.error = error;
})
}
ngAfterViewInit() {
// Your jQuery code goes here
$('.carousel .item').each(function () {
var next = $(this).next();
if (!next.length) {
next = $(this).siblings(':first');
}
next.children(':first-child').clone().appendTo($(this));
for (var i = 0; i < 2; i++) {
next = next.next();
if (!next.length) {
next = $(this).siblings(':first');
}
next.children(':first-child').clone().appendTo($(this));
}
});
}
每个功能都不执行......
答案 0 :(得分:1)
这是因为你的async函数的响应还没有。您可以在收到回复后立即调用.each函数。
list(): void {
this.http.get(`http://localhost:8082/api/list`)
.subscribe(response => {
this.c= response.json().data;
// Your jQuery code goes here
$('.carousel').carousel();
$('.carousel .item').each() ....
}, error => {
this.error = error;
})
}
答案 1 :(得分:1)
使用信号量;
有一个全局systemctl restart kibana
变量;
switch
并保持每个方法执行发生这么小的延迟循环,直到异步调用结束它。您可以选择〜
,而不是全局变量,您可以使用一些DOM元素来执行此操作