在我的应用程序中,我想为一个只有查询参数的子状态创建单独的视图/控制器。
的内容.state('article') {
url: '/articles/:articleID',
controller: 'articleController'
}
.state('article.raw') {
url: '?raw',
controller: 'rawArticleController'
}
这适用于最新版本的UI-Router,但查询参数?raw
未显示在URI中。例如,如果我带article.raw
进入{articleID: 'Hello'}
州,我仍然会看到此
http://app/articles/Hello
而不是这个
http://app/articles/Hello?raw
我已经四处寻找并发现了这些相关问题,但它们并没有解决我的问题。任何见解将不胜感激!
答案 0 :(得分:1)
一般来说,UI-Router很难在没有常量的情况下理解url定义(即只使用查询字符串参数)
所以,我们应该使用一些特定的名称
url: "/child?raw"
或至少“/”
.state('article', {
url: '/articles/:articleID',
controller: 'articleController',
templateUrl: "views/article.html",
})
.state('article.raw', {
url: '/?raw',
controller: 'rawArticleController',
templateUrl: "views/raw.html",
})
现在所有这些链接都可以使用
<a ui-sref="article">
<a ui-sref="article.raw">
<a ui-sref="article({articleID: 1})">
<a ui-sref="article({articleID: 22})">
<a ui-sref="article.raw({articleID: 333, raw: 'someRaw'})">
<a ui-sref="article.raw({articleID: 4444, raw: 'otherRaw'})">
<a href="#/article">
<a href="#/articles/1234">
<a href="#/articles/1/?raw='yyy'">
<a href="#/articles/22/?raw=zzz">
检查here
答案 1 :(得分:0)
只是简单的一个添加infront /喜欢这个(/ articalraw?raw)
.state('article.raw') { url: '/articalraw?raw' controller: 'rawArticleController'}
HAppy Coding