为网格 Angular 中的刷新按钮添加动画
当网格中没有更新的数据时,刷新按钮在视觉上不会执行任何操作。这让用户感到困惑,所以我想在网格重新加载期间向按钮添加动画。使用很棒的字体方式。
HTML:
<hum-button
[tooltipContent]="'GridComponent.refreshGrid' | translate"
iconCss="fa fa-refresh"
[isPrimary]="true"
[onlyIcon]="true"
(click)="onRefreshGridClick()"
>
</hum-button>
角度: grid.component.ts
public refreshData(): void {
if (typeof this.refreshGridFn === 'function') {
this.refreshGridFn();
return;
}
if (this.agGrid) {
return this.agGrid.refreshData();
}
}
Angular: ag-grid.component.ts
public refreshData(): void {
if (!this.customDatasource) {
this.log('refreshData');
if (this.dataSource && this.dataSource.rowCount > 0) {
this.gridApi.refreshInfiniteCache();
} else {
this.gridApi.purgeInfiniteCache();
}
}
}
When there is no updated data in a grid, the refresh button will visualy do nothing. This is confusing for the user, so i want to add an animation to the button during the reload of the grid. Use the font-awsome way.
HTML:
<hum-button
[tooltipContent]="'GridComponent.refreshGrid' | translate"
iconCss="fa fa-refresh"
[isPrimary]="true"
[onlyIcon]="true"
(click)="onRefreshGridClick()"
>
</hum-button>
Angular:
grid.component.ts
public refreshData(): void {
if (typeof this.refreshGridFn === 'function') {
this.refreshGridFn();
return;
}
if (this.agGrid) {
return this.agGrid.refreshData();
}
}
Angular: ag-grid.component.ts
public refreshData(): void {
if (!this.customDatasource) {
this.log('refreshData');
if (this.dataSource && this.dataSource.rowCount > 0) {
this.gridApi.refreshInfiniteCache();
} else {
this.gridApi.purgeInfiniteCache();
}
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
有几种选择。
其中之一是使用 .css。如果你定义了
你可以使用一些像
并将变量加载为 true/false
你也可以使用 Angular 动画:
你使用
并定义两个变量
当你想要开始
时 当完成时
在 stackblitz 您有两个选项(只需单击按钮开始/结束动画)
更新
好吧,我们想在调用 API 时使用。所以我想象一个返回可观察值的服务
我们有两种方法:
使用变量并完成 rxjs 运算符。
<前><代码> getData()
{
this.loading=true;
this.count=this.count==1?0:1
this.dataService.getData().pipe(finalize(()=>{
this.loading=false
})
).subscribe(res=>this.data=res)
}
其他方法是使用运算符指示,因为它是这样的
所以(遗憾的是有一点关注) 该操作员需要一个
主题,所以功能就变成了
但是 .html 有点复杂
使用运算符的优点是你可以与任何可观察的一起使用 - 甚至是 rxjs 运算符
of
-我只是更新 stackblitz
There're several options.
One of then is using .css. If you defined
You can use some like
And put the variable loading to true/false
You can also use Angular animations:
You use
And define two variables
When you want to start
When finished
In the stackblitz you has the two options (just click the buttons to start/end animation)
Update
Well, we want to use when call to an API. So I imagine a service that return an observable
We has two approach:
Using a variable and finalize rxjs operator.
Other approach is use an operator indicate as it's how in this
SO (that sadly had a little attention) This operator need a
Subject, so the functions becomes like
But the .html it's a bit complex
The advantage of use an operator is that you can use with any observable -even the rxjs operator
of
-I just update the stackblitz