首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跟踪链接的角度路线?

跟踪链接的角度路线?
EN

Stack Overflow用户
提问于 2016-12-05 09:08:59
回答 1查看 222关注 0票数 0

我有如下所述的链接,我想要写的角度路线条件。

链接:

代码语言:javascript
复制
1.www.example.com/level-1
2.www.example.com/level-1/level-2
3.www.example.com/level-1/level-2/level-3

就像这样,我有超级菜单链接,所以我想要路由条件,这样我就可以用$routeProvider.when( '/level-1/:slug', {} );编写

我希望这是动态的,这意味着我不想手动编写级别-1作为前缀术语。

Dynamic意味着它将是1级、2级或3级中的任何前缀。

我试过这样做:

代码语言:javascript
复制
.when( '/level-1/:slug', {
})
.when( '/level-1/level-2/:slug', {
})
.when( '/level-1/level-2/level-3/:slug', {
})

它的工作很好,但我不想这样做。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-05 10:04:21

您可以将需要的多个params传递给您的路由器,所以请尝试创建您在路由中需要的部分。这条路:

代码语言:javascript
复制
.when( '/:lev1/:slug', { ... })
.when( '/:lev1/:lev2/:slug', { ... })
.when( '/:lev1/:lev2/:lev3/:slug', { ... })

当然,您可以在控制器中访问这些参数,就像使用:slug一样。但请注意,这些路线将捕获所有的州有2,3或4段,以便他们可以混乱的其他路线,你已经定义在你的应用程序.为了避免这个问题,您可以做的一件事是在所有这些路由前加上您选择的固定字符串。例如:

代码语言:javascript
复制
.when( '/megamenu/:lev1/:slug', { ... })
.when( '/megamenu/:lev1/:lev2/:slug', { ... })
.when( '/megamenu/:lev1/:lev2/:lev3/:slug', { ... })

编辑:,根据您的注释,在这些路由中您似乎需要n级,并且可能希望绑定到相同的控制器。这就产生了两种可能性:

1)如果您使用的是AngularJS 1.5或更高版本,您可以创建一个组件并将其路由到它,作为您需要的参数创建绑定。只要一条路就够了。

2)如果您使用的是以前版本的AngularJS,或者您不想破坏新的组件体系结构,那么尝试这样做:只定义一条具有最大级别的路由,比如5。用5段调用所有路由,将一个虚拟值传递给未使用的路由,然后在控制器上解析这些参数以查看它们是否有效。

代码语言:javascript
复制
.when( '/megamenu/:lev1/:lev2/:lev3/:lev4/:lev5/:slug', { ... })

然后生成如下链接:

代码语言:javascript
复制
<a href="/megamenu/group/item/code/XXXXX/XXXXX/whatever123">CLICK ME</a>

您将知道'XXXXX‘是一个占位符,必须忽略在您的控制器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40970621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档