首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ionic3 VirtualScroll:更新前显示微调器,更新完成后隐藏微调器

Ionic3 VirtualScroll:更新前显示微调器,更新完成后隐藏微调器
EN

Stack Overflow用户
提问于 2018-03-18 22:38:15
回答 1查看 134关注 0票数 0

在Ionic3中,我使用的是VirtualScroll和一个不断变化的数组(排序键和排序顺序)。我想在操作数组之前显示一个微调器,并在操作完成后隐藏它。基本上

.html

代码语言:javascript
复制
<ion-list [virtualScroll]="vsArray">
    <button ion-item *virtualItem="let item" (click)="didSelectRow(item)">
        {{item}}
    </button>
...

.ts

代码语言:javascript
复制
document.getElementById("mySpinner").setAttribute('style', 'visibility:visible');
tmpArray = vsArray;    //prevent virtualScroll reset/trigger
tmpArray.sort(...);    //prepare array
vsArray = tmpArray;    //trigger virtualScroll update
document.getElementById("mySpinner").setAttribute('style', 'visibility:hidden');

问题是旋转器DOM更新是按顺序发生的,而由vsArray更改触发的VirtualScroll更新在此代码序列之后异步发生。我尝试使用DOMController.write而不是直接访问DOM,但我有相同的行为,因为微调器DOM更新在VirtualScroll DOM更新之前排队。

如何确保微调器仅在VirtualScroll更新完成后隐藏?

感谢您的意见

EN

回答 1

Stack Overflow用户

发布于 2018-08-04 06:27:05

Ionic 3提供了您可以使用的<ion-spinner></ion-spinner>组件。将其添加到<ion-list>顶部的某个位置。并且,向其添加一个*ngIf以显示和隐藏它。

代码语言:javascript
复制
<ion-spinner *ngIf="showSpinner"></ion-spinner>
<ion-list ...>

@Component({ ... })
export class ComponentName {
  showSpinner:boolean = true; // default so it shows 

  getDataForIonList() {
     this.someAPI.get()
     .then((res:any) => {
        this.showSpinner = false;
     });
  }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49349106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档