Sé que en angular2 puedo deshabilitar un botón con el 
 [disable]atributo, por ejemplo:
<button [disabled]="!isValid" (click)="onConfirm()">Confirm</button>
pero ¿puedo hacerlo usando [ngClass]o [ngStyle]? Al igual que:
<button [ngStyle]="{disabled : !isValid}" (click)="onConfirm()">Confirm</button>
Gracias.
                    
                        html
                                angular
                                angular2-template
                                angular2-forms
                                
                    
                    
                        Nir Schwartz
fuente
                
                fuente

Respuestas:
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 suisValidcheque a través del método de componentes.El problema con lo que intentó se explica a continuación
Básicamente, podrías usar
ngClassaquí. Pero agregar clase no restringiría el disparo del evento. Para activar un evento con una entrada válida, debe cambiar elclickcódigo de evento a continuación. Entonces esoonConfirmse disparará solo cuando el campo sea válido.Demo aquí
fuente
button[disabled]selector basado en y el evento desactivado restringirá elclickevento para que se active en el botón ... en langClassclase, debe manejarlo por su cuenta, como se muestra en respuesta anterior ..[disabled]="!isValid"isValidbandera en la interfaz de usuarioRecomendaría lo siguiente.
fuente
sí tu puedes
https://angular.io/docs/ts/latest/api/common/NgClass-directive.html
fuente
Si tiene un formulario, lo siguiente también es posible:
Demostración aquí: http://plnkr.co/edit/Xm2dCwqB9p6WygrquUGh?p=preview&open=app%2Fapp.component.ts
fuente
Usar
ngClasspara deshabilitar el botón para un formulario no válido no es una buena práctica en Angular2 cuando proporciona funciones incorporadas para habilitar y deshabilitar el botón si el formulario es válido e inválido respectivamente sin hacer ningún esfuerzo / lógica adicional.[disabled]hará todo, como si el formulario es válido, se habilitará y si el formulario no es válido, se deshabilitará automáticamente.Ver ejemplo:
fuente
Puede estar debajo del código que puede ayudar:
fuente
<button disabled="">o<button disabled="false">todavía se maneja como un botón deshabilitado en la mayoría de los navegadoresIntenté usar deshabilitado junto con el evento de clic. A continuación se muestra el fragmento, la respuesta aceptada también funcionó perfectamente bien, estoy agregando esta respuesta para dar un ejemplo de cómo se puede usar con las propiedades deshabilitadas y de clic.
fuente
Si está utilizando formularios reactivos y desea deshabilitar alguna entrada asociada con un control de formulario, debe colocar esta
disabledlógica en su código y llamaryourFormControl.disable()oyourFormControl.enable()fuente
Creo que esta es la forma mas facil
fuente
código .ts
fuente