gpt4 book ai didi

Angular 路线 : prefix matching

转载 作者:行者123 更新时间:2023-12-05 06:16:44 41 4
gpt4 key购买 nike

我正在阅读有关 Angular 路由的文档并创建了一个简单的测试:

const routes: Route[] = 
[
{ path: '', redirectTo: '/home', pathMatch: 'full' },
{ path: 'home', pathMatch: 'prefix', component: HomeComponent },
// { path: '**', component: PageNotFoundComponent },
];

To my understanding the path like "/home/12345" should match the second route. The path is a prefix for this URL... But this does on happen:

enter image description here

行为就像它没有在路由器 socket 上映射任何组件。页面上的大标题来自上层组件。如果我取消注释第三条路线(“**”),这条路径将转到 PageNotFoundComponent。

我做错了什么或者我的误解在哪里?为什么我的 2 路径变体不起作用?

最佳答案

但这并不是前缀的意思。

在大多数情况下,您只需要默认的 pathMatch 前缀。这意味着 Angular 路由会找到与 URL 匹配的第一个路由器,然后进一步查找可能与该路由匹配的任何子路由器(在您的情况下没有)。

除了在重定向空路径(这是他们在示例中向您展示的内容)之外的其他情况下,您实际上并不需要 pathMatch 'full'。我不认为还有其他情况有用(但也许有人可以发表评论)。

你正确地看到了这个错误,因为没有这样定义的路由。如果你想在 'home' 之后有一个变量,你必须将它定义为 'home/:variableName'。

来自文档:

Technically, pathMatch = 'full' results in a route hit when the remaining, unmatched segments of the URL match ''. In this example, the redirect is in a top level route so the remaining URL and the entire URL are the same thing.

The other possible pathMatch value is 'prefix' which tells the router to match the redirect route when the remaining URL begins with the redirect route's prefix path. This doesn't apply to this sample app because if the pathMatch value were 'prefix', every URL would match ''.

关于 Angular 路线 : prefix matching,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61950749/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com