部分静态路由参数 angular 2

Posted

技术标签:

【中文标题】部分静态路由参数 angular 2【英文标题】:partial static routing parameter angular 2 【发布时间】:2018-08-10 15:18:18 【问题描述】:

是否可以在 Angular 2 路由中使用部分静态参数? 我来解释一下:

现在我正在使用这样的经典参数:

const routes: Routes = [
  
    path: ':type/fine.html',
    pathMatch: 'full',
    redirectTo: ':type/fine'
  

但我可以使用这样的东西:

const routes: Routes = [
      
        path: 'static-:type/fine.html',
        pathMatch: 'full',
        redirectTo: 'static-:type/fine'
      

为了能够准确地重定向到static-parameterValue/fine

有可能吗?

【问题讨论】:

你应该看看angular.io/api/router/UrlMatcher。它允许覆盖默认匹配策略并提供您自己的。我认为它可以处理你的情况。 刚刚尝试过。问题是当 UrlMatcher 试图找到 :type 参数时,它只是将其视为一个字符串,并将其评估为完全等于 ":type"。 【参考方案1】:

经过多次尝试,我已经掌握了不可能做类似事情的知识。所以我按照这个例子用路由保护实现了一种完全不同的方法:

http://www.sparkbit.pl/angular-2-route-guards-real-life-example/

只为遇到同样问题的人回答。

【讨论】:

我相信这可以通过延迟加载的路由功能模块来完成,但这会很复杂。使用警卫似乎是一个可靠的选择。 已经尝试过延迟加载模块,但问题是一样的:你无法匹配部分静态路由。如果您尝试一下,您会发现使用静态和参数路由路径的唯一方法是隔离两个 / 之间的参数,因为 Angular 仅将参数视为 folder path 或在其中。 我没有意识到,这是一个非常严重的限制。

以上是关于部分静态路由参数 angular 2的主要内容,如果未能解决你的问题,请参考以下文章

使 Angular 路由与 Express 路由一起工作

静态路由配置示例与路由的优先级

没有服务器,关于angular路由访问静态页面chrome报错的问题

angular 路由可以跳转到当前页面的某个位置吗

静态路由的工作过程

静态路由实现路由负载分担