在我们的 Angular 4 应用程序中,我们有多个命名的路由器出口。所以网址就像: http://localhost:3000/main/(outletName1:Printers//outletName2:Printers)
假设一个组件显示在一个特定命名的路由器出口中。组件在构造函数中注入了 Router、ActivatedRoute 等。
组件如何从那些注入的对象(或其他可能的对象)中检索路由器出口的名称?
在我们的 Angular 4 应用程序中,我们有多个命名的路由器出口。所以网址就像: http://localhost:3000/main/(outletName1:Printers//outletName2:Printers)
假设一个组件显示在一个特定命名的路由器出口中。组件在构造函数中注入了 Router、ActivatedRoute 等。
组件如何从那些注入的对象(或其他可能的对象)中检索路由器出口的名称?
我认为您可以通过 RoutesRecognized 事件获得所有命名的网点。下面是一个示例代码。
this.router.events.filter((event) => event instanceof RoutesRecognized).subscribe((result) => {
console.log(result);
const routesRecognizedEvent = <RoutesRecognized>result;
const state = routesRecognizedEvent.state;
if( state && state.root ) {
const root = state.root;
const children = root.children;
const allOutlets = children.map(c => c.outlet);
// allOutlets contains outletnames of current activated route
}
});