An open API service indexing awesome lists of open source software.

https://github.com/bobbyg603/ngx-super-forms

πŸ“πŸ¦ΈπŸ“‹ Strongly-typed Angular form that enforces type safety at declaration via data models.
https://github.com/bobbyg603/ngx-super-forms

angular example form stackblitz

Last synced: 2 months ago
JSON representation

πŸ“πŸ¦ΈπŸ“‹ Strongly-typed Angular form that enforces type safety at declaration via data models.

Awesome Lists containing this project

README

          

## πŸ“πŸ“‹πŸ¦Έ Angular Super Forms: Confirm Password

Angular Super Forms

[![Medium](https://img.shields.io/badge/Medium-12100E?style=for-the-badge&logo=medium&logoColor=white)](https://betterprogramming.pub/how-to-build-a-strongly-typed-angular-14-super-form-86837965a0e5)
[![twitter profile link](https://img.shields.io/badge/Twitter-1DA1F2?style=for-the-badge&logo=twitter&logoColor=white)]([https://twitter.com/bobbyg603/status/1524465334522195968](https://twitter.com/bobbyg603/status/1534909164773851138))
[![StackBlitz](https://img.shields.io/badge/StackBlitz-Edit-blue?style=for-the-badge&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC4AAABECAYAAAD+1gcLAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH5AINBw4X0bTGRQAABSxJREFUaN7VmVtsFFUYx//fmQW79bbd2QKpaIIaDcGoifFBEgMGqTTRRA01SgxE5Rbi7QG6S3lgo9J2twpeotxEQlCigLdoQwJ4ARN9QB9MRCNRDBdRzE7LJbTSmTl/H4BYStmd2Z3tDOdt5lzml/9833fO9x0gYi2xgom6Tt5aapyKEnRDlrVGPzfGT+G3SwZ87HLGT8f5uYD7jmSl99IAX80RfTY3A5wMqDVepoQPnqVKHtMbAN4PyJeFtPwafXBSknG9UoDHAIDQq7xODRU8mdc5Aeaeffy7O2F8GnnwZM5dKsCic88CrMU8sSMNbubdZwTIDnjlOoZa52eNYQc3c84sEK+d/1a6ji2UA5EFN3POw4C8fcYy/m+a3p1y2MGTOXsqIJsAxAZ1Hei53tgeSfBkBycK1McALrswJGIVHhE3cuD1ed4uorsAXD5Ed7/hqvXlrFtV8LpO3qKpdwJIDLn/AB/+s0SORgp8VJ43KK23AzAvNsagWlXu+lKV6LGc14itvyEwrsiwX6wWNQEijITiY9pYD1vvKAENAG+VC40hQlNlNt3Bq22lt4EYX2Jor6PVe5V8KzDFG7KsFXE/A3GHB/vcdHyx9IQPnuXI/ji3CuRuT+N1+U4ZHPhmGqk43yXY5C0ccE9hsfwQLjgp5n69hmCz9ylYGcRPrgg8ldfLIXjSx5RjNX3GB6GCm3m3ncDz/v4QNnjJ4KsGbubdVhAZ35YFtTaoKOY7jps5dwGIZf73aH7dnZa9QYH72vLNDmcmRNaX86eEnGvT2BoIdA0o3pV2HgRkS9C7bXnRDGlPypmd9r2AvB8FaAFetDJGvqTiyU7eJWeOp1cgfOo3rRbj6ZJRJdHB20TrrkhAAxutXvVsSedMtfEmGno3gNHhM8snVp80IytO0The18HraOgdkYCm7KyLy6MDoYdUfNQyjnZjeheAm8NXmt/FlDH16CI5dUHaN/DhypeZUqK/AkomAsMQ8fCjq41GKy0nim75ydd51UjX3QZgQgQccV/MUfcVSzYM4Mw1hnPa7QJkYgSgD2qqe6xWOVL8kLWaI3ptbgFkUgSgjwpUY09GDpY8ZJnH9UsExhPYH8CuVgtgTJlzC5pqipXxdpUSaF3FzLkdANJleOIJETWlkJbvh78glOVIM64PARjlc2afiGoqtMiuUMoTqRp3ehnQtpDNfqEDBdeC+T6nuELOLGRiXVVPJC5u2xwP6L0+1qOQ8wqZWNmpXECK6wV+RBCipRLoQBRvyLL2dFwfBlDnTWos7W4xXgi3IATg31p3hldoEG8EAR0IuEC8OuUGK62eCyoYVARutvNOL9VZQD6yxqmnKqmHB6u46PkejHp7XVxmlHOzVhXnTKxgwujXhzH0bdo56m9jymgcKhEITXFl61lFoYV7BMa0akCjkjqJEHOKdP/U7xhNJ1vlZLXOv2Upnmq3JxfJlH4XRzWebBWrmgf38hRXav5F4vSfjqGmHl8if1W/NuSzjWljvW3oQxh0Ly9AQRtqUvdC+Xk4UiXfpmLH9JzB0CBOQKtpwwXtHzxLJcTsQW97FdQDQVxIVc3GUzVuEyEDb4z7NTndysju4c6qfSlOOc8pXQof78nEtoVRDvDsnMlXeK04+o+ztRgSnNOdjq1DSM2z4uLoeecKSCQWhgntXfEsY2ZcHwDQAMESq8VoC7ty5EnxZK37EIAGAV6NArT3c3def2Hm3HdASlSYSipe384bAR6x+tTsIBOBqoMTzlirVz2BrOgoWcF/mizikfkwKiQAAAAASUVORK5CYII=)](https://stackblitz.com/edit/angular-ivy-1b7hxn)

This is is a companion repo for [How To Build a Strongly Typed Angular Super Form](https://betterprogramming.pub/how-to-build-a-strongly-typed-angular-14-super-form-86837965a0e5) that demonstrates a strongly typed Angular form that enforces type safety at declaration via data models.

## πŸ₯Ύ Steps

Clone this repo

```sh
git clone https://github.com/bobbyg603/ng-super-forms
```

Install the dependencies

```sh
npm i
```

## πŸ§‘β€πŸ« Additional Learning

Inspect the form in [src/app/shirt/shirt.component.ts](https://github.com/bobbyg603/ng-super-forms/blob/ebd17cdde5e3e214e5659ff8354a044527a3bac4/src/app/shirt/shirt.component.ts#L19)
```ts
formGroup = new FormGroup>>({
quantity: new FormControl(1),
item: new FormGroup({
color: new FormControl(Color.Green as Color),
size: new FormControl(Size.medium as Size),
text: new FormControl('hello world 🌎'),
}),
});
```

Modify [src/app/shirt/shirt.ts](https://github.com/bobbyg603/ng-super-forms/blob/master/src/app/shirt/shirt.ts)
```ts
export interface Shirt {
frontText: string;
backText: string;
color: Color;
size: Size;
}
```

Fix the `formGroup` declaration error
```ts
formGroup = new FormGroup>>({
quantity: new FormControl(1),
item: new FormGroup({
color: new FormControl(Color.Green as Color),
size: new FormControl(Size.medium as Size),
frontText: new FormControl('hello world 🌎'),
backText: new FormControl('goodnight world 🌎'),
}),
});
```

## πŸ§‘β€πŸ’» Next Steps

If you liked this example, please follow me on [Medium](https://bobbyg603.medium.com/) and [X](https://twitter.com/bobbyg603), where I post programming tutorials and discuss tips and tricks that have helped make me a better programmer.

**Thank you for your support ❀️**