angular / angular/components

feat(datepicker): expose the validators that the datepicker uses internally as a public API

Abierto
#16,274 5 comentarios 5 reacciones 0 asignados Ver en GitHub
area: material/datepicker feature P3
Lenguaje dominante
TypeScript
Estrellas
25k
Forks
6.8k
Merge medio
1 d 8 h
PR fusionados (30 d)
91

Descripción

#### Reproduction

https://stackblitz.com/edit/angular-inex9i?file=app%2Fdatepicker-formats-example.ts

#### Steps to reproduce
1. Add a MatDatePicker to a component and bind it to a Reactive form control
2. Ensure you are reporting the built-in parse error (matDatepickerParse) using mat-error
3. Type in a bad date and see the parse error.
4. Call setValidators() on your reactive form control. It doesn't matter what is sent to setValidators
5. Enter invalid data and you will no longer see matDatepickerParse reported


#### Expected Behavior

Parsing errors after calling setValidators() should continue to report parsing errors

#### Actual Behavior

Parsing errors are no longer reported.

#### Additional Information
The provided DateAdapter (custom or not) is still used. However, since [datepicker-input](https://github.com/angular/components/blob/917a52e03cca1b3568d29094bbf430846ba1c3c9/src/material/datepicker/datepicker-input.ts) will provide a null value if the provided DateAdapter says the inputted date is invalid, you cannot workaround this issue with a custom validator.

Many complex forms may have conditional validation so using setValidators is completely expected.

#### Environment

- Angular: 8.0.0
- CDK/Material: 8.0.1
- Browser(s): Google Chrome 73.0.3683.75 (Official Build) (64-bit)
- Operating System Windows 10 64-bit

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comienza con la reproducción vinculada y src/material/datepicker/datepicker-input.ts, centrándote en cómo interactúan las entradas no válidas del adaptador y los validadores de formularios reactivos. El cambio estará terminado cuando los validadores internos del datepicker estén disponibles mediante una API pública y los errores matDatepickerParse sigan apareciendo después de llamar a setValidators().

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
angular, typescript
Área
frontend
Tipo de issue
Nueva funcionalidad
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.