Actualizar
Me pregunto. ¿Por qué no desea utilizar el [disabled]
enlace de atributo proporcionado por Angular 2? Es la forma correcta de lidiar con esta situación. Propongo que mueva su isValid
cheque a través del método de componentes.
<button [disabled]="! isValid" (click)="onConfirm()">Confirm</button>
El problema con lo que intentó se explica a continuación
Básicamente, podrías usar ngClass
aquí. Pero agregar clase no restringiría el disparo del evento. Para activar un evento con una entrada válida, debe cambiar el click
código de evento a continuación. Entonces eso onConfirm
se disparará solo cuando el campo sea válido.
<button [ngClass]="{disabled : !isValid}" (click)="isValid && onConfirm()">Confirm</button>
Demo aquí