Blog
Mert Özen's blog posts on software development, backend, frontend, and DevOps.
What Angular 14 Brought: Typed Reactive Forms, inject() and a First Look at Standalone Components
Angular 14 made reactive forms typed: typed FormControl, nonNullable and NonNullableFormBuilder. Plus the inject() function, standalone components in developer preview and route titles.
What Angular 13 Brought: Upgrading with ng update, Ivy-Only Angular and the New Dynamic Component API
We upgrade from Angular 12 to 13 step by step with ng update. View Engine's removal, the end of IE11, factory-less createComponent, the persistent build cache and Node/TypeScript requirements.
Angular Build and Deploy: ng build, Environment Files, Budgets and SPA Routing
Production bundles with ng build in Angular 12: the dist output, environment files via fileReplacements, budgets, base href, the SPA routing 404 on Nginx/IIS, source maps and bundle analysis.
Getting Started With Angular Testing: Karma, Jasmine, TestBed and HttpClientTestingModule
Karma and Jasmine with ng test in Angular 12, the structure of a spec file, component tests with TestBed and ComponentFixture, service tests with fake dependencies and HTTP mocking with HttpClientTestingModule.
Change Detection and Zone.js in Angular: OnPush, ChangeDetectorRef and NgZone
How does Angular update the screen? The events Zone.js catches, change detection across the component tree, the OnPush strategy, immutable data, ChangeDetectorRef and NgZone.runOutsideAngular.
Angular Reactive Forms: FormGroup, FormBuilder, FormArray and Validators
Reactive forms in Angular 12: building the form in the class with FormControl, FormGroup and FormBuilder, custom and async validators, dynamic fields with FormArray, valueChanges and patchValue.
Angular Template-driven Forms: ngModel, ngForm and Form Validation
We build a template-driven form in Angular 12: FormsModule, ngModel and name, ngForm with ngSubmit, required/email/pattern validators, touched/dirty states, CSS classes and ngModelGroup.
Angular Guards and Lazy Loading: CanActivate, CanDeactivate, CanLoad and Resolve
We protect routes with class-based guards in Angular 12: CanActivate, CanDeactivate, CanLoad and Resolve. We lazy load a feature module with loadChildren and preload it with PreloadAllModules.
Angular Routing Guide: RouterModule, Route Parameters and Child Routes
Routing in Angular 12: app-routing.module.ts, router-outlet, routerLink, route parameters with ActivatedRoute, query params, Router.navigate, child routes, redirectTo and a wildcard for 404s.
Angular HttpClient for API Requests: GET, POST, Error Handling and Interceptors
We send GET, POST, PUT and DELETE requests with Angular 12's HttpClient. Typed responses, HttpParams, error handling with catchError and retry, class-based interceptors and environment config.
Introduction to RxJS in Angular: Observables, Operators, BehaviorSubject and the async Pipe
Observable vs Promise, of/from/interval/fromEvent, a search box with map, filter, debounceTime and switchMap, service state with BehaviorSubject, the async pipe, and avoiding leaks with takeUntil.
Angular Services and Dependency Injection: providedIn, the Injector Tree and Providers
Why services exist, singletons with providedIn: 'root', constructor injection, component-level providers and hierarchical injectors, useClass/useValue/useFactory, and config values via InjectionToken.