Реактивные формы из углового материала. Отключить флажок в зависимости от выпадающего выбора

#angular-material #angular-reactive-forms

#угловой-материал #угловые реактивные формы

Вопрос:

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

HTML:

 <ng-container matColumnDef="permissions">
<th mat-header-cell class="text-center" *matHeaderCellDef>Permissions</th>
<td mat-cell *matCellDef="let p" class="text-center">
     <mat-select [formControl]="p.item.permissionsControl">
        <mat-option [value]="permissionOptions.NoAccess">No Access</mat-option>
        <mat-option [value]="permissionOptions.ReadOnly">Read Only</mat-option>
        <mat-option [value]="permissionOptions.Modify">Modify</mat-option>
        <mat-option [value]="permissionOptions.Confirm">Confirm</mat-option>
        <mat-option [value]="permissionOptions.Full">Full</mat-option>
        </mat-select> 
</td>
</ng-container>

<ng-container matColumnDef="canConfirmOwnChanges">
    <th mat-header-cell class="text-center" *matHeaderCellDef>Can Confirm Own Changes</th>
    <td mat-cell *matCellDef="let p" class="text-center">
        
        <span *ngIf="p.item.permissionsControl.value == permissionOptions.Confirm || p.item.permissionsControl.value == permissionOptions.Full"> 
        
            <mat-checkbox [disabled]="false" [formControl]="p.item.canConfirmOwnChangesControl"></mat-checkbox>
        </span>
        <span *ngIf="p.item.permissionsControl.value == permissionOptions.NoAccess || p.item.permissionsControl.value == permissionOptions.ReadOnly || p.item.permissionsControl.value == permissionOptions.Modify">
            <mat-checkbox  [disabled]="true" [formControl]="p.item.canConfirmOwnChangesControl"></mat-checkbox>
        </span>
    </td>
</ng-container>
 

Добавление [checked]=»false» здесь не работает.

Любые советы будут с благодарностью!

Ответ №1:

Мне удалось добиться этого, подписавшись на valueChanges в FormControl для выпадающего списка, а затем включить / отключить и установить значение для флажка FormControl