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 suisValid
cheque a través del método de componentes.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 elclick
código de evento a continuación. Entonces esoonConfirm
se disparará solo cuando el campo sea válido.Demo aquí
fuente
button[disabled]
selector basado en y el evento desactivado restringirá elclick
evento para que se active en el botón ... en langClass
clase, debe manejarlo por su cuenta, como se muestra en respuesta anterior ..[disabled]="!isValid"
isValid
bandera 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
ngClass
para 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
disabled
lógica en su código y llamaryourFormControl.disable()
oyourFormControl.enable()
fuente
Creo que esta es la forma mas facil
fuente
código .ts
fuente