angular - 如何获取带有参数的 Url 路径以匹配它以检查 Angular4+ 中的访问?

标签 angular parameters router

网址:http://localhost:4200/#/users/company/5263/12

组件:UserDetailsComponent

我已经在我的 user-details-routing.module.ts 中添加了这条路由

{
    path: "company/:companyId/:userId"
    component: UserDetailsComponent,
    canActivate: [AdminGuard]
}

现在我的 Guard 文件中需要下面这个值

users/company/:companyId/:userId

admin.guard.ts

    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean> | boolean {
        this.loaderService.show();
        let url: string = state.url;  
        // Here I need that value
        return true;        
    }

最佳答案

您可以使用 ActivatedRoute 获取这样的查询参数,然后将其存储在一个变量中。这是示例:

import {Router, ActivatedRoute, Params} from '@angular/router';
import {OnInit, Component} from '@angular/core';

@Component({...})
export class MyComponent implements OnInit {

  constructor(private activatedRoute: ActivatedRoute) {}

  ngOnInit() {
       let url =   this.activatedRoute.snapshot._routerState.url
       let urlSegment = this.activatedRoute.snapshot.routeConfig.path


  }

}

我有这个网址::: http://localhost:4200/product/productDetails/79

我的 url 输出是这样的::: "/product/productDetails/79"

我的 urlSegment 输出是这样的::: "productDetails/:id"

希望这会奏效。

关于angular - 如何获取带有参数的 Url 路径以匹配它以检查 Angular4+ 中的访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52203284/

相关文章:

java - 查找连接到同一 Wifi 网络的所有设备的 MAC 地址

javascript - router.use 类型错误 : Cannot read property 'use' of undefined

javascript - ionic 2 : creating a ng-repeat inside ion-slides

php - 未知错误(in_array() 期望参数 2 为数组,给定字符串)

css - 如何以 Angular 绑定(bind)占位符输入的样式属性,如占位符的文本缩进

pointers - `access`参数模式有什么用?

function - Groovy - 检查 param 是否是一个函数

带有 routerLink 的 angular2 未设置 socket

angular - 如何从 Angular 属性绑定(bind)加载框架资源

javascript - 如何取消选中 Angular 6 中所有选中的复选框