Угловой 6 переключатель 2 кнопки - PullRequest
0 голосов
/ 14 октября 2019

У меня есть 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...