代码之家  ›  专栏  ›  技术社区  ›  AlanObject

角路由器获取与子树匹配的URL

  •  0
  • AlanObject  · 技术社区  · 6 年前

    我想编写一个组件来处理给定URL基的所有子路径。例如:

    /text/123
    /text/something
    /text/this/is/a/subpath
    

    所以我发现我可以设置路由表,让所有这些url都像这样转到我的组件:

    const route: Routes = [
      { path: '', component: HomeComponent },
      { path: 'signup', component: SignupComponent },
      { path: 'login', component: LoginComponent },
      { path: 'text', component: TextComponent, children: [
          { path: '**', component: TextComponent }
        ] },
    

    到现在为止,一直都还不错。凡事都需要 文本组件 如预期。但是,我不知道如何才能最好地得到URL的完整子路径。通过在控制台中四处探访,我发现以下几点似乎有效:

    constructor(private route: ActivatedRoute) { }
    
      ngOnInit() {
        this.url = this.route.snapshot._routerState.url;
    

    我得到了以“/text/”开头的字符串。我可以这样做,但我找不到任何文件表明这是正确的财产使用。此外,我不确定以下划线开头的属性( _路由器状态 在这种情况下)打算以这种方式使用。

    有人能指引我走正确的路吗?(双关语)。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Andrew Lobban    6 年前

    作为一个简单的解决方法,您可以使用 window.location.pathname . 尝试在typescipt文件中运行它和/或操纵它以获得所需的内容。

    console.log(window.location.pathname);
    

    角解

    我问了几个我从NgConf认识的人关于返回URL的角度方法。您需要注入路由器的实例,而不是激活路由器。

    constructor(private router: Router) { }
    
    ngOnInit() {
      console.log(this.router.url);
    }