部分静态路由参数 Angular 2

13

在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

可能吗?


1
你应该查看 https://angular.io/api/router/UrlMatcher。它允许覆盖默认匹配策略并提供自己的策略。我认为它可以处理你的情况。 - Noémi Salaün
刚刚尝试了一下。问题在于当UrlMatcher尝试查找:type参数时,它只将其视为字符串,并将其评估为与“:type”完全相等的值。 - Luca Taccagni
1个回答

6

1
我相信这可以通过惰性加载路由特性模块来完成,但这会很复杂。使用守卫似乎是一个可靠的替代方案。 - Aluan Haddad
已经尝试使用惰性加载模块,但问题仍然存在:无法匹配部分静态路由。如果您尝试,您会发现使用静态和参数化路由路径的唯一方法是在两个“/”之间隔离参数,因为Angular只将参数视为“文件夹路径”或其中的一部分。 - Luca Taccagni
我没有意识到,那是一个相当严重的限制。 - Aluan Haddad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接