feat(Dialog): Allow data to be a signal
- Lenguaje dominante
- TypeScript
- Estrellas
- 25k
- Forks
- 6.8k
- Merge medio
- 1 d 8 h
- PR fusionados (30 d)
- 91
Descripción
### Feature Description
Currently, to access data inside a material component, and treat it as a signal, we have to inject MAT_DIALOG_DATA and get the data like this:
```
import { MAT_DIALOG_DATA } from '@angular/components/dialog';
data =signal( inject(MAT_DIALOG_DATA)) // create signal from input data
ngOnInit() {
// Do something with the data
}
```
Proposal:
Create a new function that injects MAT_DIALOG_DATA for us, and returns the injected data as a signal:
```
import { dialogData } from '@angular/material/dialog' // new function
data = dialogData(); // data is now a signal
doSomething = effect( () => dosomethingWithhdata( this.data());
```
### Use Case
Having data inputs for dialogs handled in the same way as regular components, and having the inputs available as signals without needing the boilerplate code we currently need to do.
Having inputs as signals also lets us avoid using ngOnInit and constructors because it lets us use effect() to initiate actions
Guía de contribución
Línea de trabajo
Comienza siguiendo el recorrido existente de inyección de MAT_DIALOG_DATA en el paquete de diálogos de Angular Material y revisa cómo se exponen las API públicas desde @angular/material/dialog. Define la API de signals y su comportamiento esperado a partir de la propuesta; después, añade cobertura para leer los datos del diálogo mediante la nueva función. La tarea estará completa cuando el caso de uso documentado funcione sin el código repetitivo manual de inject-and-signal.
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
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 30/100