Blog
Mert Özen's blog posts on software development, backend, frontend, and DevOps.
Standalone APIs in Angular 15: bootstrapApplication, provideRouter and Apps Without NgModule
Angular 15 made the standalone APIs stable. We build an app without AppModule using bootstrapApplication, provideRouter, provideHttpClient and importProvidersFrom, then migrate step by step.
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.