2017-02-10 49 views
0

是否有一种内置方法将多个可能的链接路由到同一个“页面”?聚合物应用程序路线:到同一页面的多条路线?

例如,我有一个'/'路由,通过将该路由的活动属性绑定到正在观察的名为landing-active的属性来加载着陆页。我认为允许融合路线的最直接的方式是为新路线创建另一个应用路线元素,并将其活动属性绑定到与'/'路线相同的着陆活动属性。

有没有更好的/不同的处理方式,还是应该坚持我的方法?

编辑:我尝试了我的方法,它不起作用。这是我原来的路线:

<app-route 
    id='landing-route' 
    route='{{route}}' 
    pattern='/' 
    active='{{landing-active}}'> 
</app-route> 

如果我再通过简单地改变模式和id,然后将“/”路径将不再有效增加一个备用路由。更改新路径上的活动绑定可修复此问题,但不再允许它按预期运行。所以我的结论是,我不能将相同的属性绑定到两个单独的app-route元素的活动属性,所以我的路由方法不起作用。

我还有什么替代方案?

回答

1
  • 选项1:使用两个单独的active变量你的两个<app-route> s和测试任一变量(例如,与计算binding/property)。可以使用不同的路由器组件。 <nebula-routing>可能是IMO的最佳选项,因为它具有与<app-route>类似的API,并支持路由模式中的正则表达式。

+0

选项1是如此明显,我是一个白痴。我也会研究星云路线,但是正则表达式并不是我想要的。例如,假设我想明确地将'/index.html'路由到登录页面,也可能是'/ index'或'/ home'等。定义离散的替代方案而不是正则表达式会更好。 – ViggyNash

+0

@ViggyNash我不是跟随如何正则表达式不会帮助那里。如果我的理解正确,你需要三种不同的模式路由到同一页面:'/ index.html','/ index'或'/ home'。那个正则表达式看起来像这样:['/index(.html)?|home'](https://regex101.com/r/Y2I4Rr/1)。 – tony19

+0

是的,你是对的。我希望有一个更直观的选项(正则表达式不是最简单的东西)。 – ViggyNash

相关问题