Cómo Deshabilitar Controles en los Formularios Reactivos de Angular.

  Рет қаралды 3,140

akotech

akotech

Күн бұрын

Пікірлер: 32
@ezequielrivera9992
@ezequielrivera9992 Жыл бұрын
Por mucho tiempo busqué una explicación como esta, saludos y muchas gracias desde Aguascalientes
@akotech
@akotech Жыл бұрын
Un placer haberte podido ayudar Ezequiel! un saludo
@hacsor22
@hacsor22 Жыл бұрын
Ojalá sea el primer video de una serie acerca de formularios. Muchas gracias!
@akotech
@akotech Жыл бұрын
No es el primer video en el que tratamos cosas de formularios, ni será el último 😉. ¿Hay alguna cosa en particular que te gustaría que tratáramos? Se aceptan sugerencias... un saludo y gracias por tu comentario
@hacsor22
@hacsor22 Жыл бұрын
@@akotech Formularios dinámicos con FormArray. Gracias.
@akotech
@akotech Жыл бұрын
@@hacsor22 me lo apunto! 😉
@hacsor22
@hacsor22 Жыл бұрын
@@akotech Con algún ejemplo de campos que carguen dependiendo de un json que devuelva el backend, seria la locura. Muchas gracias!
@akotech
@akotech Жыл бұрын
@@hacsor22 te importaría darme un ejemplo específico de lo que buscas? gracias
@ramonmartinez1144
@ramonmartinez1144 Жыл бұрын
Buena Akotech. Saludos y Gracias nuevamente.
@akotech
@akotech Жыл бұрын
Gracias a ti una vez más por tu apoyo! El próximo video ya es el tuyo 😉 un saludo
@monk1585
@monk1585 Жыл бұрын
muchas gracias por todo lo que nos enseñas
@akotech
@akotech Жыл бұрын
Gracias a ti por tus palabras! un saludo 😉
@matavic25
@matavic25 Жыл бұрын
Excelente contenido. Muchas gracias!
@akotech
@akotech Жыл бұрын
Gracias Vicente! un saludo 😉
@elportu89
@elportu89 Жыл бұрын
muy buen video! Saludos y sigue aportando tus conocimientos a la comunidad de Angular
@akotech
@akotech Жыл бұрын
Muchas gracias Javier! Aquí seguiremos 😉 un saludo
@aldoturijan8844
@aldoturijan8844 Жыл бұрын
este tipo de videos es de angular avanzado, deberias hacer el curso como te dicen en los comentarios, hay muy poco contenido de este tipo
@akotech
@akotech Жыл бұрын
Si todo va bien, alguno sacaremos este año 😉. un saludo y muchas gracias por tu cometario.
@asanast
@asanast Жыл бұрын
Totalmente de acuerdo... Cualquier curso que se ve en udemy al final es siempre lo mismo. Crud y las bases. Un curso con tus conocimientos tu forma de explicar y con contenido avanzado hay realmente poco y yo pagaría pasta por el... Saludos y enhorabuena!
@MarceloMenendez-np9iv
@MarceloMenendez-np9iv Жыл бұрын
Hola, ¿has pensado en hacer un curso completo de Angular y publicarlo en alguna plataforma?. Sigo tus videos desde que empezaste y me parecen geniales. Gracias por compartir tu conocimiento y espero que te animes a preparar un curso completo. Saludos.
@akotech
@akotech Жыл бұрын
Sí tengo intención de hacer algún curso, pero la verdad que no me había planteado hacer de Angular a nivel global, sino de algún tema particular. Hay alguna cosa que hayas echado en falta en la serie de videos de Angular Basics? Gracias por tu comentario y apoyo 😉 un saludo
@sedanospiano
@sedanospiano Жыл бұрын
Hola muy buenas! Bestial el vídeo, la edición, la explicación, todo, tengo una pregunta usando el método "estándar", si yo tengo un select llamémoslo X, que debe estar deshabilitado a menos que un segundo select llamémoslo Y tenga el value distinto a null o ' ', siguiendo tu tutorial, lo he conseguido hacer, pero no consigo volver a deshabilitarlo en caso de que el usuario vuelva a poner el select Y con la opción que tiene el value a ' ' o null, la primera vez funciona, pero si el usuario vuelve a poner el option con el value ' ' el select X que debería deshabilitarse, se mantiene habilitado. Ojalá puedas echarme un cable, un saludo!
@akotech
@akotech Жыл бұрын
Sin ver el código es difícil decirte cual puede ser el problema, pero si he entendido bien tu caso, deberías tener algo similar a esto: const { x, y } = this.myForm.controls; this.subscription = y.valueChanges .pipe( startWith(y.value), // solo necesario si Y lo inicias como null o '' map((yVal) => yVal === null || yVal === ''), tap((xShouldBeDisabled) => xShouldBeDisabled ? x.disable() : x.enable() ) ) .subscribe(); Si sigues teniendo problemas, pásame pls el enlace a tu repo para echarle un vistazo. O si lo tienes privado, intenta replicar esa parte del form en stackblitz y pásame el link. un saludo
@sedanospiano
@sedanospiano Жыл бұрын
@@akotech Pude ver el problema! Fue un error en la condición del ternario, lo tenía como elemento=== null || ' ', cuando tenía que ser elemento === null || elemento === ' ' Con esa condición se solucionan todos mis problemas.
@rapsekill
@rapsekill Жыл бұрын
Que tal compañero, tengo una duda/porpuesta: Como ves hacer un video de como gestionar o como controlar los errores en controles de formulario personalizados? Ya vengan como FormControl, FormControlName, o NgModel, crees que sería interesante? Me estoy peleando con ello y estoy seguro que tu lo explicarías perfectamente. Un Saludo!
@akotech
@akotech Жыл бұрын
Me puedes por favor explicar un poco que problemas estás teniendo. Porque en principio no debería haber ninguna diferencia a la hora de manejar los errores respecto a los controles estandar. un saludo
@rapsekill
@rapsekill Жыл бұрын
@@akotech Basicamente tengo un componente en el que monto un select personalizado. Este componente lo necesito usar como formControl individualmente (sin formGroup) como en un formGrup con formControlName. Lo que me encuentro, es que si no inyecto NgControl para comprobar que tipo de formControl me llega no detecta los Validadores. No se si hay forma de gestionar eso sin tener que inyectar NgControl. Espero haberme explicado 😅
@akotech
@akotech Жыл бұрын
@rapsekill Pero cuando hablas de gestionar los errores, a qué te refieres exactamente? Estás hablando de validar el valor del FormControl asociado, o de aplicarle por ejemplo un estilo de error al control de formulario personalizado? - Para el primer caso si es un control simple(en este caso un select), puedes añadir los validadores en el FormControl externo asociado. Y si es una lógica de validación que va a ser necesaria siempre que se utilice el control, puedes también reutilizar la clase del componente como directiva de validación implementando en la misma la interfaz Validator y añadiendo la clase como proveedor de NG_VALIDATORS. - Si solo necesitas añadir un estilo CSS o similar cuando el control sea invalido, pues entonces inyectar el NgControl puede ser una opción o también apoyarte en la clase .ng-invalid que añade angular en el control automáticamente. Espero esto resuelva tu duda 😉. Y sino pues explícame por favor mas detalladamente el caso o mejor aún reproduce esa parte de tu aplicación en un stackblitz y me pasas el enlace para echarle un vistazo. un saludo
@urtaav639
@urtaav639 Жыл бұрын
Tratando de practicar el tema, me paso lo siguiente: tengo un select(tipo persona) el cual al seleccionar tipo 1 habilito campo 1 al seleccionar tipo 2 deshabilito campo 1 y habilito campo 2 y 3, pero me sale el error ==> "Expression has changed after it was checked", esto por que se elimina el contro del form y al imprimirlo en una etiqueta {{form.value | json }} indica que el valor del form cambio, entonces no me queda clara la solución a este error, leí que usando getRowValue se soluciona ya que value solo muestra controles habilitados y getRowValue muestra tanto habilitados como deshabilitados que tan cierta es esta solución.
@akotech
@akotech Жыл бұрын
Ese error se produce cuando cambias el valor de una expresión después de que esta haya sido evaluada por la detección de cambios. Sin ver el código no te puedo decir 100% la causa, pero por lo que comentas me atrevería a decir que en el template has puesto el antes que los inputs. En ese supuesto el form.value se evalúa antes de la deshabilitación de los controles y entonces cuando se evalúan los controles, el valor del form.value cambia, ya que como bien dices esos controles deshabilitados desaparecen. Si este es el caso, pues tienes 2 opciones: - mover el pre al final del template - o usar como dices getRawValue(), ya que ese, efectivamente, muestra todos los controles sin tener en cuenta el estado de habilitación y entonces en este caso no se vería afectado. Si aún así no se soluciona, por favor replica en código en un stackblitz para que le pueda echar un vistazo. un saludo
@urtaav639
@urtaav639 Жыл бұрын
@@akotech en efecto probe con getRawValue y funciona y tambien probe moviendo el {{form.value | json}} al final del templete y funciona correctamente. Gracias por responder era un error muy común que no tenia del todo claro su origen.
@enriqueruiz320
@enriqueruiz320 Жыл бұрын
Maestro 😔
3 Opciones para manejar Formularios Anidados en Angular.
15:22
The Lost World: Living Room Edition
0:46
Daniel LaBelle
Рет қаралды 27 МЛН
Ozoda - Alamlar (Official Video 2023)
6:22
Ozoda Official
Рет қаралды 10 МЛН
ВЛОГ ДИАНА В ТУРЦИИ
1:31:22
Lady Diana VLOG
Рет қаралды 1,2 МЛН
Every team from the Bracket Buster! Who ya got? 😏
0:53
FailArmy Shorts
Рет қаралды 13 МЛН
Git MERGE vs REBASE: The Definitive Guide
9:39
The Modern Coder
Рет қаралды 133 М.
Angular Resource API - Everything You Have To Know (so far)
27:58
Decoded Frontend
Рет қаралды 18 М.
The Correct Way to Run Database Migrations in EF Core
19:51
Nick Chapsas
Рет қаралды 36 М.
This is the Only Right Way to Write React clean-code - SOLID
18:23
The Lost World: Living Room Edition
0:46
Daniel LaBelle
Рет қаралды 27 МЛН