获取当前组件名称

gsi*_*dze 9 angular

这有可能获得当前的组件名称吗?

例如,如果我有localhost:3000/en/mycomponent,我将this.router.url返回/en/mycomponent它是什么/language/component

我想重新定位语言变化.

我会做

this.router.navigate([this.lang, my component here]);

但是如何从路由中获取当前组件?

小智 11

我遇到了与上述相同的问题,并且能够使用以下内容检索组件名称: this.route.routeConfig.component.name。这返回了一个我们可以比较的字符串值。

  • 它在生产版本中不起作用,因为名称被缩小了。 (3认同)

小智 8

角 CLI:

您可以从构造函数访问组件名称:

 console.log('this', this.constructor.name);

 this.constructor.name; // Component name
Run Code Online (Sandbox Code Playgroud)

  • 当您在生产中使用它时,您不会得到正确的结果。 (4认同)

Mad*_*jan 5

您可能会获得如下组件名称,

export class MyComponent{

  constructor(
    private route: ActivatedRoute,
    private router: Router
  ) {
    // Below will result in MyComponent
    console.log(this.route.component.name);         
  }
}
Run Code Online (Sandbox Code Playgroud)

话虽这么说,路由是基于路径而不是组件名称。

希望这可以帮助!!

  • 感谢您的回答。正如我在angularjs 2的最新版本中所看到的,this.route.component没有属性名称 (4认同)
  • 它似乎总是“AppComponent” (4认同)
  • 我正在使用最新版本。也许不推荐使用? (3认同)