要使具有子路由的父组件对URL变化做出反应,可以使用Angular的ActivatedRoute来监听URL的变化,并在父组件中订阅这些变化。以下是一个示例代码:
首先,在父组件的构造函数中注入ActivatedRoute:
import { ActivatedRoute } from '@angular/router';
constructor(private route: ActivatedRoute) { }
然后,在父组件的ngOnInit方法中订阅URL的变化:
ngOnInit() {
this.route.url.subscribe(urlSegments => {
// URL变化时的逻辑处理
console.log(urlSegments);
});
}
在上述示例中,每当URL的路径发生变化时,subscribe方法中的回调函数将被触发。urlSegments参数将包含URL的路径段数组。
如果要监听子路由参数的变化,可以使用params属性:
ngOnInit() {
this.route.params.subscribe(params => {
// 子路由参数变化时的逻辑处理
console.log(params);
});
}
在上述示例中,params属性将包含子路由的参数对象。
通过这样的方式,父组件可以实时获取URL的变化,包括子路由参数的变化,并对其做出相应的反应。