Skip to content
Back to skills

Angular

ASecurity

Build reliable Angular apps avoiding RxJS leaks, change detection traps, and DI pitfalls.

  • 17 stars
  • 0 votes
  • 0 copies
  • 10 views
  • Added May 29, 2026
developmentgoangular

Works with

  • cli

Security analysis

A100/100

Pro scans all 8 files and shows the line behind each finding

Scanned May 29, 2026

npx -y skills add clawic/skills --skill angular --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Angular?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Angular
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/clawic-angular/badge)](https://www.skillsdirectory.com/skills/clawic-angular)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: Angular
slug: angular
version: 1.0.1
description: Build reliable Angular apps avoiding RxJS leaks, change detection traps, and DI pitfalls.
---

## When to Use

User needs Angular expertise — component architecture, RxJS patterns, change detection, dependency injection, routing, and forms.

## Quick Reference

| Topic | File |
|-------|------|
| Components & change detection | `components.md` |
| RxJS & subscriptions | `rxjs.md` |
| Forms & validation | `forms.md` |
| Dependency injection | `di.md` |
| Routing & guards | `routing.md` |
| HTTP & interceptors | `http.md` |

## Common Mistakes

- `OnPush` with mutated objects won't trigger change detection — always create new reference: `{...obj}` or `[...arr]`
- `@ViewChild` is undefined in constructor/`ngOnInit` — access in `ngAfterViewInit` or later
- `*ngFor` without `trackBy` re-renders entire list on any change — add `trackBy` returning stable ID
- Manual `subscribe()` without unsubscribe leaks memory — use `async` pipe, `takeUntilDestroyed()`, or unsubscribe in `ngOnDestroy`
- `HttpClient` returns cold Observable — each `subscribe()` fires new HTTP request
- `setTimeout`/`setInterval` outside NgZone — change detection won't run, use `NgZone.run()` or signals
- Circular DI dependency crashes app — use `forwardRef()` or restructure services
- `ElementRef.nativeElement` direct DOM access breaks SSR — use `Renderer2` or `@defer`
- Route params via `snapshot` miss navigation changes — use `paramMap` Observable for same-component navigation
- `setValue()` on FormGroup requires ALL fields — use `patchValue()` for partial updates

Files in this skill

  • SKILL.md1.6 KB
  • _meta.json242 B
  • components.md685 B
  • di.md640 B
  • forms.md655 B
  • http.md651 B
  • routing.md653 B
  • rxjs.md792 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.