angular - 如何从导航触发的路由解析器访问先前激活的组件?
问题描述
这是一个容器组件,它具有不同的子路由 ( router-outlet
) 可以在其子组件内导航(假设组件在加载时不会更改,仅在导航后更改输入参数)。
现在我需要在路由器解析数据时访问当前的子组件属性。但是看一下console.log(),快照组件只显示构造函数属性,而不是完整的组件属性,其中定义的方法。
@Injectable()
export class ReportResolverService implements Resolve<any> {
constructor(
private router: Router, public route: ActivatedRoute
) { }
resolve() {
const snapshot = this.route.snapshot;
console.log(snapshot.component);
}
}
截图如下:
它仅显示组件构造函数属性,而不是整个类属性。
即使我将注入更改route
为参数resolve()
解决方案
ActivatedRouteSnapshot 上的组件属性属于以下类型:-
component: Type<any> | string | null;
如果您查看下面的Type接口描述:-
(https://angular.io/api/core/Type#description),
它将代表构造函数。我相信这就是为什么它显示构造函数而不是类属性的原因。
推荐阅读
- sql - 如何根据给定的时间戳值(给出的示例)在 R 中创建一个间隔为 X 分钟的时间戳桶?
- javascript - 我怎样才能制作一个像 jQuery 的 slideUp() 一样的函数,但用于向上以外的方向?
- java - 无法在我的 android 应用程序中使用 StorageRefrence
- python - 计算具有多重性且无序的集合分区的计数
- html - 从 HTML angular 5 中删除自定义组件的名称
- swift - 在 Swift 应用程序中实施 AdMob 时出现“没有广告显示”错误
- python - Flask 将任何其他路由重定向到页面
- swift - 目标的预处理器宏不起作用
- javascript - 如何将类应用于通过循环生成的元素?
- python - 使用python使用haversine公式对gps数据进行下采样