2017-06-06 64 views
3

我需要根据路由参数的类型加载不同的组件。如果路由参数是字符串,然后加载一个组成部分像下面,角2路由根据参数的类型加载不同的组件

{ path: 'care/action/:string',component: StringComponent},

如果路由参数号码,然后装入另一部分像下面

{ path: 'care/action/:number', component: NumberComponent},

请注意,URL将保持相同,只有参数类型会改变。

如何实现这一目标?

在此先感谢。

+0

使用路由器解决方案,然后根据解决方案加载不同的模板。 有没有需要不同的组件不同的模板可以做的事情 –

+0

@RahulSingh,如何根据解决方案加载模板? –

+0

使用新的如果其他blocjk的角度或当你从解析得到的值你有两个结构指令我:如果并检查哪个值是真的,然后显示该特定的div或块或如果你使用模板显示 –

回答

1

您可能想要在您的路由配置中使用匹配器属性并将匹配函数传递给它。您的匹配器函数将使用正则表达式来检查其字符串(用于字符串路由)还是数字(用于数字)。

+0

谢谢。你能指点我一些资源,我可以找到这方面的例子吗? –

+0

不幸的是,它尚未记录,但你可以在源代码中看到示例:https://github.com/angular/angular/blob/d58a242fe7b1d0e664733df3adfcbc458ec9dc67/packages/router/src/config.ts#L260-L293 –

+0

好的谢谢,将退房。 –