javascript - 加载数据时如何禁用跨度中的fa图标?
问题描述
我有角 11 应用程序。我正在使用一个图标来加载图表。但是触发图标时加载图表的时间需要很长时间。所以为了防止用户多次触发图标。我想禁用图标,直到加载图表。
所以这就是我的图标:
<span (click)="createChartFromMap(selectedSensor.sensor.charts[0],selectedSensor.properties['key'],selectedSensor.properties['name'] )"
class="ml-auto " >
<fa-icon [icon]="selectedSensor.sensor.icon" [styles]="{'color': '#BF0404'}" size="lg" class="menu-list-item">
</fa-icon>
</span>
这是方法:
createChartFromMap(element: string, node: string, name: string) {
const chartParams: ChartParams = new ChartParamsObj(
node,
DateTime.utc().startOf('day').toISO(),
DateTime.utc().endOf('day').toISO(),
'P1D'
);
const el = {
config: {
label: `${name}`,
xrange: [
DateTime.local().startOf('day').toFormat('yyyy-LL-dd HH:mm:ss'),
DateTime.local().endOf('day').toFormat('yyyy-LL-dd HH:mm:ss')
],
yrange:[0, 10]
},
type: element,
paramObj: chartParams
};
this.mapRegistryService.components.load(el.type, el.config, el.paramObj);
}
加载数据的服务如下所示:
$blockButtonGraph: Observable<boolean>;
components = {
'area-chart':
{
component: AreaChartComponent,
config: {
grid: {
style: 'area-chart',
},
call: (params): Observable<WifiDensityDto[]> => {
return this.wifiDensityService.getWifiDensities(
DateTime.utc(params.start).startOf('day').toISO(),
DateTime.utc(params.end).endOf('day').toISO(),
params.node)
},
}
},
'line-chart':
{
component: LineChartComponent,
config: {
grid: {
style: 'line-chart'
},
call: (params) => {
return this.cameraValuesService.cameraDataInInterval(
params.start,
params.end,
params.node)
}
}
},
load: (comp, config, paramObj?) => {
const cmp =JSON.parse(JSON.stringify(this.components[comp]));
cmp.config.grid.label = config.label;
cmp.config.grid.id = this.components.createUnId();
},
createUnId: () => {
const id = new Date().getTime();
return id;
},
register: (comp: any, injector: Injector) => {
const factory = new WidgetFactory(
this.components[comp.config.grid.name].component,
{
element: comp.config.grid.name,
config: comp.config
}
);
}
};
所以我做了一个 $blockButtonGraph 可观察的。
但是现在如何使用 observable 呢?
谢谢
解决方案
[disabled]
在您的模板中使用。我不确定,但您可能必须将您的更改<span>
为 a<button>
但它看起来像这样:
<button
(click)=createChartFromMap(...)
[disabled]=$blockButtonGraph | async>
</button>
推荐阅读
- google-apps-script - 基于时间的 gscript tiggers 配额
- html - Bootstrap 下拉菜单栏
- google-apps-script - 不允许访问 Google Apps 脚本表单
- python - 我在数据框上的 if 条件有什么问题
- json - 从 JSON 文件中获取数据
- arrays - 关于从数组中的每个元素生成有序对的问题
- flutter - 如何从 RiverPod 中的构造函数初始化 stateProvider
- database - 如何在 Oracle 数据库中以分号为基础拆分列中的值?
- flutter - RepaintBoundary 小部件到 png 不能用透明背景保存?
- deployment - 无法将 Rails 部署到生产环境。部署失败,有关详细信息,请参阅 log/capistrano.log。您的捆绑包已锁定为 mimemagic (0.3.5)