我用 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
,正如预期的那样。但微调器仍在运行。