Назад към всички

Angular

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

$ git log --oneline --stat
stars:1,933
forks:367
updated:March 4, 2026
SKILL.mdreadonly
SKILL.md Frontmatter
nameAngular
slugangular
version1.0.1
descriptionBuild 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

TopicFile
Components & change detectioncomponents.md
RxJS & subscriptionsrxjs.md
Forms & validationforms.md
Dependency injectiondi.md
Routing & guardsrouting.md
HTTP & interceptorshttp.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