angular / angular/components

feat(Dialog): Allow data to be a signal

オープン
#28,848 コメント 2 件 リアクション 11 件 担当者 0 名 GitHub で見る
area: material/dialog feature P4
主要言語
TypeScript
スター
25k
フォーク
6.8k
平均マージ
1日 8時間
マージ済み PR(30日)
91

説明

### 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

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

まず、Angular Material のダイアログパッケージにある既存の MAT_DIALOG_DATA のインジェクションパスを追跡し、@angular/material/dialog から公開 API がどのように公開されているかを確認します。提案に基づいて signal API とその期待される動作を定義し、新しい関数を通じてダイアログデータを読み取るためのカバレッジを追加します。ドキュメント化されたユースケースが、手動の inject-and-signal ボイラープレートなしで動作すれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
angular, typescript
領域
frontend
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
30/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。