In Angular application development, routing plays a vital role. The service that can be used to extract route parameters inside a component is known as ActivatedRoute. This answer is correct according to the quiz question.
The ActivatedRoute service, part of the Angular Router library, provides a wealth of routing information such as route parameters, static and resolved data, URL, URL segment, and more. It's particularly useful when you want to fetch parameters of the current active route.
For instance, if you have a routing setup like this one:
{
path: 'product/:id',
component: ProductComponent
}
And you navigate to /product/123, then you can use ActivatedRoute inside ProductComponent like this:
import { ActivatedRoute } from '@angular/router';
export class ProductComponent implements OnInit {
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.route.params.subscribe(params => {
console.log('Product id:', params['id']); // Product id: 123
});
}
}
In this example, params['id'] extracts the id parameter from the URL.
ActivatedRoute parameters are Observables. Hence, it's essential to unsubscribe these Observables when the component is destroyed to prevent memory leaks.import { ActivatedRoute } from '@angular/router';
export class ProductComponent implements OnInit, OnDestroy {
private subscription: Subscription
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.subscription = this.route.params.subscribe(params => {
console.log('Product id:', params['id']); // Product id: 123
});
}
ngOnDestroy() {
this.subscription.unsubscribe();
}
}
export class ProductComponent implements OnInit {
constructor(private route: ActivatedRoute) {}
ngOnInit() {
console.log('Product id:', this.route.snapshot.params['id']); // Product id: 123
}
}
By understanding ActivatedRoute, you can simplify the handling of dynamic route parameters in your Angular apps, improving app flexibility and scalability.