javascript - Angular : pass optional data within route

标签 javascript angular typescript angular5 angular-routing

我正在使用 angular 5 ,我有一个很长的路由文件:

const homeRoutes: Routes = [
  {
    path: 'home', component: HomeComponent,
    children: [
      {
        path: 'registration',
        component: RegistrationComponent,
        children: [
          {
            path: 'synthese',
            component: SyntheseComponent
          },
          {
            path: 'queue',
            component: QueueComponent,
            children: [
              {
                path: 'queue-modal',
                component: QueueModalComponent
              },
              {
                path: 'confirm',
                component: ConfirmComponent
              }
            ]
          }
        ]
      },
      {
...

我想在“注册”路径中传递数据。

有人告诉我,我需要这样写:path: 'registration/:mydata',

然后订阅ActivatedRoute

的数据

我并不总是传递数据的问题,它只是在某些情况下。

我怎样才能做到影响最小??

最佳答案

您可以使用查询字符串参数(也称为 queryParams)代替路由参数。您不需要在路由中定义查询参数。

这里是一个相对 href 的例子:

registration/?mydata=123

这是为 routerLink 定义 queryParams 的方法:

<a [routerLink]="['registration']" [queryParams]="{ mydata: 123 }">Go to Registration</a>

这是您读取该参数值的方式:

myValue: any;

constructor(private route: ActivatedRoute) {}

ngOnInit() {
  this.route.queryParams.subscribe(params => {
    this.myValue = params['mydata'];
  });
}

关于javascript - Angular : pass optional data within route,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58222010/

相关文章:

angular - 从 google.maps.event.listener 调用我的函数

javascript - 在javascript中将数组的每个第n个元素转换为对象

javascript - htmlpurifier 无法与 $_POST 一起使用

javascript - 为子节点设置 onclick jquery 或 javascript

angular - CookieXSRFStrategy 在 AOT 模式下不工作 @angular

typescript - angular2 CLI 项目中缺少一些 RxJS 运算符?该怎么办?

javascript - typescript :在类中扩展集会导致错误(构造函数集需要 'new' )

javascript - this.props.location.pathname 用于 React 中的动态 URL

angular - 如何在 Angular/nx 工作空间的上下文中运行 nestjs-console 命令

typescript - 预期的错误声明