2014-12-29 4 views
6

검색 페이지가 있으며 관리 패널에서 정의 할 수있는 수천 가지 검색 속성이 있습니다. 우리는 angular-ui-router를 사용하여 AngularJS와 가진 SPA로 해당 페이지를 구현하고자 할 때각도 ui 라우터 동적 쿼리 문자열 정의

http://example.com/search?a12=3213&a314=412412&a247=1941829&.... 

, 나는 이해할 수 없었다, 우리는 그 길의 구성을 정의하고 어떻게 할 수있는 방법 : 특징적인 검색 결과 페이지는 같은 URL이 있습니다 우리는 쿼리 문자열에서 모든 검색 매개 변수를 읽습니다. ui-router$stateParams에서 사용할 수 있도록 모든 쿼eryparam 가능성을 라우트 구성에 정의하도록합니다.

$stateProvider.state('search', { 
    url: '/search?a1&a2&a3&a4&a5' // what about a1314? 
    controller: function ($stateParams) { 
     console.log($stateParams.a1314); 
    } 
}); 

해결 방법을 알고 계십니까?

+0

일치합니다 사용할 수 있습니다 https://github.com/angular-ui/ui- router/issues/84가 있지만 다음과 같은 몇 가지 해결 방법이 있습니다. https://github.com/angular-ui/ui-router/issues/202 – L42y

답변

2

어떤 매개 변수없이 호출 할 때 현재의 URL (대상으로) url: '/search' 검색 경로의 controller

가 반환 검색 부분에 $ location.search()를 사용할 수 있습니다.

var searchObject = $location.search(); 

// => {a12: '3213', a314: '412412'} 

console.log(searchObject .a12); //3213 

및 경로에 대한 당신이

url: '/search*' 

은 그래서 공식적인 해결책이 아직 없다 내가 믿는

+2

주요 문제는 URL에 정의되지 않은 쿼리 매개 변수가있는 경우 라우트 구성에서 ui-router는 URL에서 그것을 제거하고 그것없이 페이지를 보여줍니다. –

+0

'/ search *'사용 시도 –

+0

어떻게 해당 URL에 대한 링크를 생성합니까? –

관련 문제