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)