feat(angular): support markAsTouched() for angular signal forms
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 68/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- angular, typescript
- Área
- frontend
Línea de trabajo
Comienza con los puntos de integración de Angular signal forms utilizados por formRoot, formField e ion-input; después, reproduce el ejemplo de submit en el que se llama a form().markAsTouched() sin enfocar el campo. Se considera terminado cuando markAsTouched() hace que ion-input reciba ion-touched en lugar de ion-untouched, mientras se mantiene el comportamiento existente de formControl.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Prerequisites
- I have read the Contributing Guidelines.
- I agree to follow the Code of Conduct.
- I have searched for existing issues that already include this feature request, without success.
Describe the Feature Request
I already took a look at https://github.com/ionic-team/ionic-framework/issues/30805 and I think Ionic currently doesn't support the markAsTouched() use case despite the opposite being stated.
Blurring out of a signal form field after focusing it correctly mark the field with the ion-touched class.
But calling markAsTouched() on a signal form doesn't work.
Describe the Use Case
I have a signal form like this:
<form [formRoot]="form" (submit)="onSubmit()">
<ion-input [formField]="form.field" />
<ion-button type="submit">Submit</ion-button>
</form>
export class AppComponent {
protected readonly form = form(signal({ field: '' }));
protected onSubmit(): void {
this.form().markAsTouched();
}
}
When clicking on the submit button (without focusing/blurring the input) the ng-touched class is correctly applied but I still have ion-untouched instead of ion-touched.
Describe Preferred Solution
The ion-touched class should be automatically added to the ion-input, like it does when using [formControl] instead of [formField].
Describe Alternatives
I'm currently fixing the problem by applying the class myself:
<ion-input [formField]="form.field" [class.ion-touched]="form.field().touched()" />
Related Code
No response
Additional Information
My app config providers includes provideSignalFormsConfig({ classes: NG_STATUS_CLASSES }) so that the ng-invalid, ng-touched, and other angular classes are automatically added by Angular, otherwise, [formField] no longer have ng-* classes applied by default like they used to have with [formControl]
- Lenguaje dominante
- TypeScript
- Estrellas
- 52.7k
- Forks
- 13.3k
- Merge medio
- 2 d 20 h
- PR fusionados (30 d)
- 35
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de ionic-team/ionic-framework
-
triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
ionic-team/ionic-framework#31410 · 1 comentario ·
-
triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
ionic-team/ionic-framework#31314 ·
-
triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
ionic-team/ionic-framework#31291 ·
-
triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
ionic-team/ionic-framework#30738 ·
-
package: core type: bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
ionic-team/ionic-framework#29864 · 1 comentario ·
Todos los issues de ionic-team/ionic-framework
Issues similares
-
Browser Waiting for: Product Owner
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
getsentry/sentry-javascript#24577 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
agilepathway/label-checker#640 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
copse-dev/agent-pane#2953 ·
-
[aw] Upgrade available Abiertoagentic-workflows
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
githubnext/rig#534 ·
-
automation missing-model model-sync provider:pioneer
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
anomalyco/models.dev#7701 ·