У меня есть 2 btns, один для добавления «исключенного» свойства из некоторой полезной нагрузки, а второй для удаления этого свойства. При нажатии первой кнопки выполняется API-вызов с запросом POST, и пользователь помечается как исключенный (получает это «исключенное» свойство). Я хочу, чтобы моя вторая кнопка отображалась после нажатия первой, поэтому переключение происходит, но условие основано на свойствах сотрудника, полученных с сервера.
//button_1
<ng-container *ngIf="employeeDataSubject | async as employeeData">
<button
mat-fab
(click)="addEmployeeToExcludedList()"
*ngIf="isSysAdmin && employeeData.exluded === false"
>
<mat-icon svgIcon="add"></mat-icon>
</button>
//button_2
<button
mat-fab
(click)="deleteEmployeeFromExcludedList(employeeForm)"
*ngIf="isSysAdmin && employeeData.exluded === true"
>
<mat-icon svgIcon="delete"></mat-icon>
</button>
</ng-container>
Свойство "isSysAdmin" основано на зарегистрированном пользователепривилегии.
addEmployeeToExcludedList() {
const dialogRef = this.dialog.open(AddEmployeeToExludedListComponent);
dialogRef.afterClosed().subscribe(result => {
if (result) {
return this.apiService.userService.exclude({ userId: this.employeeId }).subscribe(
_ => {
this.snackBar.open('User added to excluded list', 'Dismiss');
this.cd.markForCheck();
},
errorResponse => {
if (errorResponse instanceof HttpErrorResponse) {
this.snackBar.open(errorResponse.error.message, 'Dismiss');
}
}
);
}
});
}
Функция deleteEmployeeFromExcludedList () выглядит почти так же, как addEmployeeToExcludedList (), только с другим вызовом API.