Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何知道组件是嵌入的还是从路由器调用的_Angular_Angular2 Routing - Fatal编程技术网

Angular 如何知道组件是嵌入的还是从路由器调用的

Angular 如何知道组件是嵌入的还是从路由器调用的,angular,angular2-routing,Angular,Angular2 Routing,嗨,我有一个登录组件,所以在我的login component.ts文件中,我如何知道何时: 这个组件是从类似路由器的地方调用的 此组件包含在父组件中(嵌入) 谢谢大家您的问题的答案肯定是使用组件生命周期挂钩 例如,在您的登录组件中,您可以使用ngOnInit(){}来跟踪它是否被实例化。无论何时调用登录组件,都会调用该函数 constructor(private logger: LoggerService) { } ngOnInit(){ this.logIt(`onIni

嗨,我有一个登录组件,所以在我的login component.ts文件中,我如何知道何时:

  • 这个组件是从类似路由器的地方调用的
  • 此组件包含在父组件中(嵌入)

  • 谢谢大家

    您的问题的答案肯定是使用
    组件生命周期挂钩

    例如,在您的
    登录组件中
    ,您可以使用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
      }
    }
    
    请看一看请看一看