Reader Stacks

GUIDES

Angular

Angular components, forms, routing, and state.

What Is Angular? A Conceptual Introduction

A full framework, not a library — the distinction that actually shapes how building an Angular app differs from a lighter tool like React or Vue, beyond just syntax.

Removing the # From Angular URLs (HTML5 Routing)

One line in Angular's router config switches URLs from /#/products to /products — the part that actually takes real work is configuring the web server to make those clean URLs work on refresh.

Looping Over Objects (Not Just Arrays) in Angular

*ngFor only iterates arrays and other iterables natively — looping over a plain object's keys and values needs either the built-in KeyValue pipe or converting the object first.

Angular Pipes: Built-in and Custom

A pipe transforms a value for display, right in the template, without touching the underlying data — the built-in set covers formatting basics, and a custom pipe extends the same pattern to anything else.

Uploading Multiple Files in Angular

The multiple attribute on a file input is the easy part — looping through the resulting FileList and appending each file to FormData under a repeated key is what a backend actually needs to receive them all.

Converting HTML to PDF in Angular

Two genuinely different approaches exist — rendering the DOM to an image-based PDF entirely in the browser, or asking a server to generate a real, selectable-text PDF — and they aren't interchangeable.

Building Reusable Components in Angular

A component becomes genuinely reusable through its public API — @Input/@Output for data, and content projection (ng-content) for letting the parent supply arbitrary markup, not just values.

How to Create and Use a Service in Angular

A service is where shared logic and state belong instead of a component — Angular's dependency injection handles creating and sharing a single instance across every place that needs it.

How to Check the User's Browser or Device in Angular

navigator.userAgent is plain browser JavaScript, not an Angular API — genuinely useful for a quick check, but it's a notoriously unreliable string to parse for anything beyond the broadest categories.