Scenario
I am trying to disable [disabled] a button and select a class [ngClass] through two conditions:
1st: Input text is required.
2nd: Asynchronous flag is requiredTrue. I have a dependency about demand a challenge against a remote server which is the trigger to enable this button.
Well, I am using a formGroup validation like this:
  constructor(private fb: FormBuilder) {
     this.form = this.fb.group({
        'inputSMS': [null, Validators.required],
        'button': [false, Validators.requiredTrue]
     })
  }
1st condition = inputSMS; 2nd = button.
In my HTML I use this code for 1st condition:
<div class="col-xs-offset-1 col-xs-10">
  <div [formGroup]="form">
    <label class="col-xs-4 F sms-codigo-sms">SMS Code</label>
    <div class="col-xs-6">
      <input class="form-control sms-rect7" [(ngModel)]="inputSMS" formControlName="inputSMS" name="inputSMS" maxlength="20" type="numbers">
    </div>
  </div>
</div>
And this for 2nd:
<div class="form-group row text-center">
   <div class="col-md-12">
      <div class="btn-group">
         <button [ngClass]="!form.valid ? 'sms-btn-disabled' : 'sms-btn'" 
         type="button" style="float: left;" [disabled]="!form.valid"  
         formControlName="button" (click)="check()">Validate</button>
     </div>
 </div>
Problem
I recieved correctly the asynchronous flag with a subject. I checked it. And 1st condition is true. But I do not know why is not enables button when conditions are true. It is as if is not detecting event changes. I only used ngModel with inputs but I am not sure if i could use it here. Do you know how can I resolve it?
Thank you.
 
    