DEV Community

Software Developer
Software Developer

Posted on

50 Most Useful Angular Snippets

Component & Template Basics

1. Creating a Component

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

2. Basic Component Setup

@Component({
  selector: 'app-sample',
  templateUrl: './sample.component.html',
  styleUrls: ['./sample.component.css']
})
export class SampleComponent {}
Enter fullscreen mode Exit fullscreen mode

3. Interpolation in Template

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

4. Property Binding

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

5. Event Binding

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

6. Two-Way Data Binding

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

Directives & Structural Elements

7. ngIf Usage

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

8. ngFor Loop

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

9. ngSwitch Example

<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

10. Creating a Service

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

11. Service Example

@Injectable({
  providedIn: 'root'
})
export class MyService {
  getData() {
    return ['Angular', 'TypeScript', 'Snippets'];
  }
}
Enter fullscreen mode Exit fullscreen mode

12. Injecting Service in Component

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

13. Using HTTP GET Request

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

Forms

14. Reactive Form Setup

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

15. Template-Driven Form Validation

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

16. Form Submission

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

Pipes

17. Using Built-In Pipes

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

18. Custom Pipe Example

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

Routing

19. Defining Routes

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

20. Navigating Programmatically

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

21. Accessing Route Parameters

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

Lifecycle Hooks

22. OnInit Hook

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

23. OnDestroy Hook

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

View & DOM Access

24. @ViewChild Access

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

25. Element Ref Usage

this.inputRef.nativeElement.focus();
Enter fullscreen mode Exit fullscreen mode

Async & Observables

26. Async Pipe in Template

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

27. Subscribing to Observables

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

28. BehaviorSubject Example

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

29. Using RxJS map Operator

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

Change Detection & Performance

30. TrackBy Function for ngFor

trackById(index: number, item: any): number {
  return item.id;
}
Enter fullscreen mode Exit fullscreen mode

31. ChangeDetectionStrategy OnPush

@Component({
  changeDetection: ChangeDetectionStrategy.OnPush,
})
Enter fullscreen mode Exit fullscreen mode

Event Emitters & Parent-Child Communication

32. @Output Event Emitter

@Output() clicked = new EventEmitter<void>();

this.clicked.emit();
Enter fullscreen mode Exit fullscreen mode

33. Parent Listening to Child Event

<app-child (clicked)="onChildClicked()"></app-child>
Enter fullscreen mode Exit fullscreen mode

Angular Modules & Lazy Loading

34. Creating a Module

ng generate module feature
Enter fullscreen mode Exit fullscreen mode

35. Lazy Loading Module in Routing

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

Angular CLI & Tooling

36. Running Angular Development Server

ng serve
Enter fullscreen mode Exit fullscreen mode

37. Building Angular Project

ng build --prod
Enter fullscreen mode Exit fullscreen mode

TypeScript & Angular Utilities

38. Interface Declaration

interface User {
  id: number;
  name: string;
}
Enter fullscreen mode Exit fullscreen mode

39. Using Enums

enum Status {
  Active,
  Inactive,
  Pending
}
Enter fullscreen mode Exit fullscreen mode

40. Optional Chaining

user?.address?.street
Enter fullscreen mode Exit fullscreen mode

Angular Material Snippets

41. Adding Material Button

<button mat-button>Click Me</button>
Enter fullscreen mode Exit fullscreen mode

42. Importing Material Module

import { MatButtonModule } from '@angular/material/button';
Enter fullscreen mode Exit fullscreen mode

Styling & Class Binding

43. Class Binding

<div [class.active]="isActive"></div>
Enter fullscreen mode Exit fullscreen mode

44. Style Binding

<div [style.background-color]="bgColor"></div>
Enter fullscreen mode Exit fullscreen mode

HTTP & Interceptors

45. Adding HTTP Interceptor

@Injectable()
export class AuthInterceptor implements HttpInterceptor {
  intercept(req: HttpRequest<any>, next: HttpHandler) {
    const cloned = req.clone({ headers: req.headers.set('Auth', 'token') });
    return next.handle(cloned);
  }
}
Enter fullscreen mode Exit fullscreen mode

Guards & Resolvers

46. CanActivate Guard

canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
  return this.authService.isLoggedIn();
}
Enter fullscreen mode Exit fullscreen mode

47. Using Resolver

resolve(route: ActivatedRouteSnapshot): Observable<Data> {
  return this.dataService.getData();
}
Enter fullscreen mode Exit fullscreen mode

Internationalization (i18n)

48. Using Angular i18n

<h1 i18n="site title">Welcome</h1>
Enter fullscreen mode Exit fullscreen mode

49. Translating Text in Component

constructor(private translate: TranslateService) {}
this.translate.instant('HELLO');
Enter fullscreen mode Exit fullscreen mode

Standalone Components (Angular 15+)

50. Creating a Standalone Component

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

Top comments (0)