Вместо того, чтобы делать document.getElementById("memberSearchBar").className = 'loading-div'
, вы можете воспользоваться *ngIf
и [class.class-name]="expression"
в Angular * Попробуйте что-то вроде этого
displayModalAndSearchMembers(){
// using only isLoading should be sufficient, but I wanted to show how you could use [class.classname]="expression" in the html template as well.
this.isLoading = true;
this.showSpinner = true;
this.displayModal = true;
this.service.searchMembers(memSearchJson).subscribe((response: any) => {
// some function
this.isLoading = false;
this.showSpinner = false;
}
}
<modal id="custom-modal-2">
<div *ngIf="displayModal" class="modal"> <!-- added *ngIf -->
</div>
<div id="memberSearchBar" *ngIf="showSpinner" [class.loading-div]="isLoading">
<mat-spinner></mat-spinner>
Finding Member IDs..
</div>
</modal>
РЕДАКТИРОВАТЬ
Вы также можете использовать *ngIf="displayModal"
и на модале, если у вас тоже есть display: none
на этом.
Я также добавил некоторый код TS.Я не уверен на 100%, что хочет желаемое ОП, но я предполагаю, что она хочет показать / скрыть счетчик и задать для него имя класса.
Это можно упростить, используя только *ngIf="isLoading"
:
<div id="memberSearchBar" class="loading-div" *ngIf="showSpinner">