Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.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
Javascript 不同路线和内容的同一页面_Javascript_Angular_Routes - Fatal编程技术网

Javascript 不同路线和内容的同一页面

Javascript 不同路线和内容的同一页面,javascript,angular,routes,Javascript,Angular,Routes,假设我的角度应用程序中有两种类型的路线: /足球和/或篮球和我对这些路线有单独的组成部分 现在我有了详细信息页面。详细信息页面非常复杂,足球和篮球都有相同的详细信息页面布局,所以我有一个组件,路径如下:/details,而不是/football/details或/basketball/details。这些都是迷你游戏,在细节页面中,我可以同时打开足球和篮球比赛,所以我认为/football/details或/basketball/details路线的实现在逻辑上是错误的 布局是一样的,但我需要在

假设我的角度应用程序中有两种类型的路线:

/足球和/或篮球和我对这些路线有单独的组成部分

现在我有了详细信息页面。详细信息页面非常复杂,足球和篮球都有相同的详细信息页面布局,所以我有一个组件,路径如下:/details,而不是/football/details或/basketball/details。这些都是迷你游戏,在细节页面中,我可以同时打开足球和篮球比赛,所以我认为/football/details或/basketball/details路线的实现在逻辑上是错误的


布局是一样的,但我需要在详细信息页面内做一些不同的事情,这取决于我从足球页面或篮球页面打开详细信息页面,所以我应该知道我在足球详细信息页面或篮球详细信息页面。那么,对于这类问题,什么是最佳的路由体系结构呢?我是说我应该用queryParams吗?或者我做错了什么?最佳做法是什么?

在上述场景中,要确定您从哪个路由登录到组件页面,您可以在路由模块中使用queryparams或传递数据对象。下面是这两种方法的使用案例

1) this.router.navigate(['/path'], { queryParams: { type: 'football'} });
2) {
    path: '',
    component: detailsComponent,
    data: {
      type: 'football'
    }
  }
如果是具有不同功能的同一页面,我建议使用/details路由和queryParams,然后创建一个服务来处理自定义逻辑。是的,使用queryParams并让您的details组件知道路由来自足球或篮球。