angular / angular/angular

Add equivalent ngDefaultControl-esque directives for additional value types

Open
#63,015 3 comments 0 reactions 0 assignees View on GitHub
area: forms
Dominant language
TypeScript
Stars
101k
Forks
27.5k
Avg merge
1d 19h
Merged PRs (30d)
288

Description

### Which @angular/* package(s) are relevant/related to the feature request?

forms

### Description

With Form Associated Custom Elements (FACE) now much more practical with advancements in the Element Internals API, its becoming easier to create a FACE that can be dropped into any framework. Currently, Angular has the `ngDefaultControl` directive that can be added to a FACE that uses a string value (for example ``) and allow it to be used with template driven and reactive forms, but thats not possible for other input types (for example a boolean ``).

### Proposed solution

There was already a PR that would solve this in 2022 but it was closed. However, the landscape has changed with updates to the Element Internals API, and FACEs are now a more practical solution for organizations that have multiple frameworks to support.

https://github.com/angular/angular/pull/45953

### Alternatives considered

Custom directives can be added, or Angular wrappers for web components. With the existence of `ngDefaultControl` though, it would make sense to also have directives that address other input types.

Contributor guide

Open the contributing guide

Research direction

Start in the Angular forms package by reading the existing ngDefaultControl directive and the closed PR #45953. Determine the API needed for additional FACE value types, then verify that the resulting directives work with both template-driven and reactive forms, including the boolean input case.

Written by the indexing model from the issue text.

Assessment

Tech stack
angular, typescript
Domain
frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.