Though there are already answers provided, If any had stumbled with the same issue. You can directly disable a form field by directly accessing its control
Had created a Stackblitz demo linklink
<!-- INPUT FIELD --> <mat-form-field formControlName="testInput"> <input matInput placeholder="Some input" [disabled]="paymentForm.get('paymentMethod').value === 'opt-1'"> // Disables the input once paymentMethod's formControlName value is opt-1 </mat-form-field> // With [disabled] in input - You can disable the input by calling its control, in this case we have paymentMethod that has a select box that we are referencing the value to. If paymentMethod's value is 'opt-1' then it the disabled is set to true, if not, it is false. Dynamically changes the state depends on the paymentMethod value. // You can fetch its value through paymentForm.get('paymentMethod').value or if you had declared it on your component separately & globally, you can call it via paymentMethod.value