2016-06-09 2 views
2

내 응용 프로그램에서는 쿼리 매개 변수가있는 자식 상태에 대해 별도의보기/컨트롤러가 필요합니다.중첩 된 상태 및 쿼리 매개 변수

.state('article') { 
    url: '/articles/:articleID', 
    controller: 'articleController' 
} 
.state('article.raw') { 
    url: '?raw', 
    controller: 'rawArticleController' 
} 

의 라인을 따라 뭔가 이것은 쿼리 PARAM ?raw이 URI에 표시되지 않는다는 점을 제외 UI - 라우터의 최신 버전과 함께 작동합니다. 내가 {articleID: 'Hello'}article.raw 상태로 가면 예, 나는 아직도 그 대신 내가 주변에 검색 한이

http://app/articles/Hello?raw 

http://app/articles/Hello 

을보고이 관련 문제를 발견하지만 그들은 해결되지 내 문제. 어떤 통찰력이라도 대단히 감사하겠습니다!

+0

url : .state ('article.raw') { url : 'articalraw? raw' 컨트롤러 : 'rawArticleController' } 그리고 –

+0

을 확인하십시오. 'articleID'의 값이 변경되지 않습니다. 그것? 그래서/articles/Hello는 자식 상태에있는/articles/Helloarticalraw? raw입니다 :/ – afreeorange

+0

단지 하나가 infront/this처럼 추가합니다 .state ('article.raw') {url : '/ articalraw? raw'controller : 'rawArticleController' –

답변

0

는 단순한 하나/

+0

글쎄, 당신이 그것을했다하더라도, 그것은 여전히 ​​'원시'부분을 삼켜 버릴 것입니다. 내 경로에도 슬래시가 있습니다 (예 :'articleID'). – afreeorange

1

코딩

.state('article.raw') { url: '/articalraw?raw' controller: 'rawArticleController'} 

행복이 (? 원시/articalraw)처럼 a working plunker

,536 뿅 있습니다 추가 할

일반적으로 UI-Router가 URL 정의를 상수없이 이해하는 것은 매우 어렵습니다 (예 : 너무

) 쿼리 문자열 PARAM, 우리는

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

+0

감사합니다. 그래, 그게 내가 생각한거야. 나는 [article.raw'에'url : '/ raw'을 사용했다.] (https://github.com/afreeorange/bock/blob/master/bock/ui/src/scripts/Bock.routes .js # L94). 문제는, 나는'articleID' ('articleTitle'이라고 불렀어야했는데, 미안)에 슬래시를 넣었습니다. [또 다른 일련의 쟁점들] (https://github.com/afreeorange/bock#ui-router)). – afreeorange

+0

당신을 도울 수있어서 다행 ... –