Как использовать 3 разных условия одновременно для отключения атрибута на Angular 7 - PullRequest
2 голосов
/ 29 апреля 2019

У меня угловая форма.

<form class="p-16" name="poMaterialDetailForm [formGroup]="poMaterialDetailForm">

Внутри формы у меня есть кнопка сохранения.

<button mat-raised-button 
        class="save-poMaterialDetail-button ml-32 mr-8"
        [disabled]="poMaterialDetailForm.invalid || poMaterialDetailForm.pristine"
        <span>SAVE</span>
</button>

Атрибут disabled позволяет мне отключить кнопку, когда в форме нет изменений. Если значения формы изменены, кнопка сохранения становится активной.

Я только что добавил функцию разрешения пользователя, и кнопка сохранения также отключена для пользователей, у которых нет прав на редактирование.

<button mat-raised-button
        class="save-clientManagementDetail-button ml-32 mr-8"
        [disabled]="isDisabled('ClientManagement','Edit')"
        *ngIf="pageType ==='edit'" (click)="saveClientManagementDetail()">
    <span>SAVE</span>
</button>

Теперь я хочу использовать обе функции для отключенного атрибута. Вот мое состояние:

[disabled]="(clientManagementDetailForm.invalid || clientManagementDetailForm.pristine) 
&& isDisabled('ClientManagement','Edit')"

К сожалению, я не могу заставить эти условия работать. Когда я использую условия по отдельности, они работают, но когда я пытаюсь использовать их одновременно, атрибут disabled соответственно не изменяется должным образом.

Надеюсь, условия ясны. Буду признателен, если кто-нибудь сможет пролить свет на эту тему.

Ура, Джонни

1 Ответ

2 голосов
/ 29 апреля 2019

Если я правильно понимаю, вы должны изменить И на ИЛИ :

(clientManagementDetailForm.invalid || clientManagementDetailForm.pristine) || isDisabled('ClientManagement','Edit')

Поскольку вам не нужна кнопка отправки, если форма недействительна ИЛИ пользователь не имеет разрешения на редактирование.

...