【发布时间】:2023-03-29 07:20:02
【问题描述】:
我使用 Angular 8 Metronic 开始了一个项目。
我有一个带有表单的组件。我希望微调器出现在提交点击并在 API 响应中消失。 下面是部分组件代码:
@Component({
selector: 'change-password',
templateUrl: './change-password.component.html',
styleUrls: ['./change-password.component.scss'],
})
export class ChangePasswordComponent implements OnInit, OnDestroy {
isLoading: boolean = false;
...
submit() {
this.isLoading = true;
this.utilisateurService
.changePassword(changePasswordData).pipe(finalize(() => this.isLoading = false))
.subscribe(() => {});
}
...
}
<form class="kt-form" [formGroup]="changePasswordForm" autocomplete="off">
...
<div class="kt-login__actions">
<button (click)="submit()"
[ngClass]="{'kt-spinner kt-spinner--right kt-spinner--md kt-spinner--light': isLoading}">
Submit
</button>
</div>
</form>
当我点击提交按钮时,isLoading 属性更新为true 并出现微调器。
当finalize() 执行时,isLoading 属性会更新为false,但微调器不会消失...
我不明白。
我尝试使用 NgZone 但同样的问题。
有什么想法吗?
编辑
我尝试点击并订阅。还是同样的问题。
问题仅用于渲染。
如果我再次单击提交按钮,isLoading 属性是false,正如预期的那样。但微调器仍在运行。
【问题讨论】:
标签: angular asynchronous binding angular8 metronic