sách gpt4 ai đã đi

angular - 如何获取所有路由参数/数据

In lại Tác giả: Space Dog 更新时间:2023-10-29 16:57:48 29 4
mua khóa gpt4 Nike

给定路由配置

{
path: '/root/:rootId',
children: [{
path: '/child1/:child1Id',
children: [{
path: '/child2/:child2Id
component: TestComponent
}]
}]
}

在 TestComponent 中,我如何轻松获取所有路由参数。我想知道是否有比

更简单的方法
let rootId = route.parent.parent.snapshot.params;
let child1Id = route.parent.snapshot.params;
let child2Id = route.snapshot.params;

这似乎过于多余,尤其是当我正在观察可观察到的路由参数而不是通过路由快照访问参数时。这种方法似乎也很脆弱,因为如果我四处移动任何路由/参数,它就会中断。我习惯了 Angular ui-router,其中为单个对象 $stateParams 提供了所有易于访问的参数数据。我对从路由树中的单个节点访问的路由解析数据也有同样的担忧。任何帮助将非常感激。提前致谢

1 Câu trả lời

从 Angular 5.2 开始,您可以进行路由器配置以将所有参数继承给子状态。参见 this commit如果对血淋淋的细节感兴趣,但这是它对我的工作方式:

无论您在何处调用 RouterModule.forRoot(),都包含一个继承策略设置为 luôn luôn 的配置对象(默认为 emptyOnly):

import {RouterModule, ExtraOptions} from "@angular/router";

export const routingConfiguration: ExtraOptions = {
paramsInheritanceStrategy: 'always'
};

export const Routing = RouterModule.forRoot(routes, routingConfiguration);

现在,当您在子组件中查看 ActivatedRoute 时,祖先的参数会出现在那里(例如 activatedRoute.params),而不是像 这样的乱七八糟的东西activatedRoute.parent.parent.parent.params.您可以直接访问该值(例如 activatedRoute.params.value.userId)或通过 activatedRoute.params.subscribe(...) 订阅。

关于angular - 如何获取所有路由参数/数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42300642/

29 4 0
Bài viết được đề xuất: c - 如何使用 C 编写脚本语言?
Bài viết được đề xuất: 将华氏温度转换为摄氏温度的 C 程序始终打印零
Bài viết được đề xuất: c - .h 文件中的重新定义错误
Bài viết được đề xuất: C 中 memset 函数的复杂性
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com