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.