Angular 如何知道组件是嵌入的还是从路由器调用的
嗨,我有一个登录组件,所以在我的login component.ts文件中,我如何知道何时:Angular 如何知道组件是嵌入的还是从路由器调用的,angular,angular2-routing,Angular,Angular2 Routing,嗨,我有一个登录组件,所以在我的login component.ts文件中,我如何知道何时: 这个组件是从类似路由器的地方调用的 此组件包含在父组件中(嵌入) 谢谢大家您的问题的答案肯定是使用组件生命周期挂钩 例如,在您的登录组件中,您可以使用ngOnInit(){}来跟踪它是否被实例化。无论何时调用登录组件,都会调用该函数 constructor(private logger: LoggerService) { } ngOnInit(){ this.logIt(`onIni
谢谢大家您的问题的答案肯定是使用
组件生命周期挂钩
例如,在您的登录组件中
,您可以使用ngOnInit(){}来跟踪它是否被实例化。无论何时调用登录组件,都会调用该函数
constructor(private logger: LoggerService) { }
ngOnInit(){
this.logIt(`onInit`);
}
除此之外,还有很多生命周期挂钩,选择任何一个适合您的需求 您的问题的答案肯定是使用
组件生命周期挂钩
例如,在您的登录组件中
,您可以使用ngOnInit(){}来跟踪它是否被实例化。无论何时调用登录组件,都会调用该函数
constructor(private logger: LoggerService) { }
ngOnInit(){
this.logIt(`onInit`);
}
除此之外,还有很多生命周期挂钩,选择任何一个适合您的需求 这是一个非常罕见的案例 一种解决方案是在加载所述登录组件时检查应用程序的路由 获取应用程序当前url的不同方式。 就我个人而言,我更喜欢这个:
constructor(router: Router) {
const url = router.url;
if(url.indexOf('login') > 0) {
// this is component is loaded from login route
} else {
// this is loaded from parent component
}
}
这是一个非常罕见的案例 一种解决方案是在加载所述登录组件时检查应用程序的路由 获取应用程序当前url的不同方式。 就我个人而言,我更喜欢这个:
constructor(router: Router) {
const url = router.url;
if(url.indexOf('login') > 0) {
// this is component is loaded from login route
} else {
// this is loaded from parent component
}
}
请看一看请看一看