angular / angular/components

feat(Dialog): Allow data to be a signal

Abierto
#28,848 2 comentarios 11 reacciones 0 asignados Ver en GitHub
area: material/dialog feature P4
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

Abrir la 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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.