如何在 Angular JS 中为 :slug 状态设置低优先级
How to set low priority for :slug state in Angular JS
我正在使用 Angular UI 路由器,并且我设置了两条路由
一个用于所有内容页面,如 /about、/terms 等
$stateProvider.state('sidebarPages.page', {
url: ':slug',
views : {
...
}
});
现在我想为我们的团队等其他页面添加另一个
$stateProvider.state('sidebarPages.page', {
url: 'our-team',
views : {
...
}
});
问题是当我转到页面 /our-team 时,第二个状态被忽略,第一个状态被执行,即 :slug ,并且可以接受所有内容。
有没有一种方法可以创建这两种状态,一种用于特定页面,另一种将接受所有内容并将其放入 slug 参数中,然后基于参数我可以从数据库中获取它。
我创建了 working plunker here。顺序决定。创建具有已知名称的状态,然后是带有 slug 的状态:
// States
$stateProvider
.state('home', {
url: "/home",
templateUrl: 'tpl.html',
})
.state('other', {
url: "/other",
templateUrl: 'tpl.html',
})
.state('slug', {
url: "/:slug",
templateUrl: 'tpl.html',
})
;
检查一下here
我正在使用 Angular UI 路由器,并且我设置了两条路由
一个用于所有内容页面,如 /about、/terms 等
$stateProvider.state('sidebarPages.page', {
url: ':slug',
views : {
...
}
});
现在我想为我们的团队等其他页面添加另一个
$stateProvider.state('sidebarPages.page', {
url: 'our-team',
views : {
...
}
});
问题是当我转到页面 /our-team 时,第二个状态被忽略,第一个状态被执行,即 :slug ,并且可以接受所有内容。
有没有一种方法可以创建这两种状态,一种用于特定页面,另一种将接受所有内容并将其放入 slug 参数中,然后基于参数我可以从数据库中获取它。
我创建了 working plunker here。顺序决定。创建具有已知名称的状态,然后是带有 slug 的状态:
// States
$stateProvider
.state('home', {
url: "/home",
templateUrl: 'tpl.html',
})
.state('other', {
url: "/other",
templateUrl: 'tpl.html',
})
.state('slug', {
url: "/:slug",
templateUrl: 'tpl.html',
})
;
检查一下here