DEV Community

Parth Raval
Parth Raval

Posted on

30 Most Useful Angular Snippets

Component & Template Basics

1. Creating a Component

ng generate component component-name 
Enter fullscreen mode Exit fullscreen mode

2. Interpolation in Templates

<p>{{ title }}</p> 
Enter fullscreen mode Exit fullscreen mode

3. Property Binding

<img [src]="imageUrl" /> 
Enter fullscreen mode Exit fullscreen mode

4. Event Binding

<button (click)="onClick()">Click Me</button> 
Enter fullscreen mode Exit fullscreen mode

5. Two-Way Data Binding

<input [(ngModel)]="name" /> 
Enter fullscreen mode Exit fullscreen mode

Structural Directives

6. ngIf Example

<p *ngIf="isVisible">Visible content</p> 
Enter fullscreen mode Exit fullscreen mode

7. ngFor Example

<ul> <li *ngFor="let item of items">{{ item }}</li> </ul> 
Enter fullscreen mode Exit fullscreen mode

8. ngSwitch Usage

<div [ngSwitch]="value"> <p *ngSwitchCase="'a'">A</p> <p *ngSwitchCase="'b'">B</p> <p *ngSwitchDefault>Other</p> </div> 
Enter fullscreen mode Exit fullscreen mode

Services & Dependency Injection

9. Creating a Service

ng generate service my-service 
Enter fullscreen mode Exit fullscreen mode

10. Injecting a Service

constructor(private myService: MyService) {} 
Enter fullscreen mode Exit fullscreen mode

11. HTTP GET Request

this.http.get('url').subscribe(data => console.log(data)); 
Enter fullscreen mode Exit fullscreen mode

Forms

12. Reactive Form Setup

form = this.fb.group({ name: ['', Validators.required] }); 
Enter fullscreen mode Exit fullscreen mode

13. Template-Driven Form Validation

<input name="email" ngModel required email /> 
Enter fullscreen mode Exit fullscreen mode

14. Submitting a Form

<form (ngSubmit)="onSubmit()">...</form> 
Enter fullscreen mode Exit fullscreen mode

Pipes

15. Using Built-In Pipes

{{ price | currency:'USD' }} 
Enter fullscreen mode Exit fullscreen mode

16. Creating a Custom Pipe

@Pipe({ name: 'reverse' }) export class ReversePipe implements PipeTransform { transform(value: string): string { return value.split('').reverse().join(''); } } 
Enter fullscreen mode Exit fullscreen mode

Routing

17. Defining Routes

const routes: Routes = [ { path: 'home', component: HomeComponent } ]; 
Enter fullscreen mode Exit fullscreen mode

18. Navigating Programmatically

this.router.navigate(['/home']); 
Enter fullscreen mode Exit fullscreen mode

19. Route Parameters

this.route.snapshot.paramMap.get('id'); 
Enter fullscreen mode Exit fullscreen mode

Lifecycle Hooks

20. OnInit Lifecycle

ngOnInit(): void { this.loadData(); } 
Enter fullscreen mode Exit fullscreen mode

21. OnDestroy Cleanup

ngOnDestroy(): void { this.subscription.unsubscribe(); } 
Enter fullscreen mode Exit fullscreen mode

Utility Snippets

22. ViewChild Access

@ViewChild('myInput') inputRef!: ElementRef; 
Enter fullscreen mode Exit fullscreen mode

23. Using async Pipe

<p>{{ data$ | async }}</p> 
Enter fullscreen mode Exit fullscreen mode

24. TrackBy for Performance

<li *ngFor="let item of items; trackBy: trackById"></li> 
Enter fullscreen mode Exit fullscreen mode

25. Emit Event from Child Component

@Output() clicked = new EventEmitter<void>(); 
Enter fullscreen mode Exit fullscreen mode

State Management & Observables

26. Subscribing to Observables

this.service.getData().subscribe(data => this.data = data); 
Enter fullscreen mode Exit fullscreen mode

27. Using BehaviorSubject

const subject = new BehaviorSubject<number>(0); subject.next(1); 
Enter fullscreen mode Exit fullscreen mode

28. RxJS map Operator

this.obs.pipe(map(val => val * 2)).subscribe(console.log); 
Enter fullscreen mode Exit fullscreen mode

Advanced Angular

29. Lazy Loading Modules

{ path: 'feature', loadChildren: () => import('./feature/feature.module').then(m => m.FeatureModule) } 
Enter fullscreen mode Exit fullscreen mode

30. Standalone Components (Angular 15+)

@Component({ standalone: true, imports: [CommonModule], selector: 'app-standalone', template: '<p>Standalone Component</p>' }) export class StandaloneComponent {} 
Enter fullscreen mode Exit fullscreen mode

Top comments (0)