feat(datepicker): expose the validators that the datepicker uses internally as a public API
- Lingua principale
- TypeScript
- Stelle
- 25k
- Fork
- 6.8k
- Merge medio
- 1g 8h
- PR unite (30g)
- 91
Descrizione
#### 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
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia con la riproduzione collegata e src/material/datepicker/datepicker-input.ts, concentrandoti su come interagiscono gli input non validi dell'adapter e i validator dei reactive form. La modifica è completata quando i validator interni del datepicker sono disponibili tramite un'API pubblica e gli errori matDatepickerParse continuano a comparire dopo la chiamata a setValidators().
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- angular, typescript
- Ambito
- frontend
- Tipo di issue
- Funzionalità
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100