2013-07-11 8 views
0

다음 사례에서 angleJS 라우팅을 어떻게 구성 할 수 있는지 이해하려고합니다.동적 URL을위한 AngularJS 라우팅, 어떻게?

제공되는 태그 (1..n 태그)를 기반으로 검색 결과를 표시하는 검색 페이지가 있습니다. 우리는 사용자가 다음과 같이 검색을 수행하고 각각의 결과를 보여주는 우리의 시스템으로 url을 구문 분석 할 수 있기를 바랍니다.

는 URL 형식은 다음과 같아야합니다

http://mywebsite.com/search/<term1>/<term2>/<termN> ...이 용어의 다른 숫자가 될 수 있도록.

내가 제공하는 경로를 찾고 있었고 동적으로 수행 할 방법을 찾을 수 없었습니다.

나는 내가 routeprovid에 넣어 수 있다고 보았다

.when('/search/:searchParams'을 ...하지만 내가 한 학기가있을 때 ... 어쨌든이 주어진대로 많은 용어를 취할 구성 만 처리?

답변

0

당신은 base64ing 당신의 searchParams 시도 할 수 :

.when('/search/:searchParams', {controller:'SearchCtrl'}) 

function SearchCtrl($routeParams, $location){ 
    //Assuming your params are an array like ['param1', 'param2', 'param3'] 
    //You could easily adapt this to base64 a JSON object 
    function encodeParams(params){ 
     return window.btoa(params.join(';')); 
    } 

    function decodeParams(string){ 
     return window.atob(string).split(';'); 
    } 

    var searchParams = decodeParams($routeParams.searchParams); 

    scope.search = function(params){ 
     $location.path('/search/' + encodeParams(params)); 
    } 
} 
0

수 있습니다 내 솔루션은 다행하지 보이는,하지만 적어도 작동 것 :

당신은 구성 할 수 있습니다 길을 비운 길

yoursite.com/term1Name/**:param1**/term2Name/**:param2**/term3Name/**:param3** 

경로를 분명히하려면 경로가 REST 경로처럼 보일 수 있습니다. 서비스의 하나에

www.yoursite.com/servises/ 

이동합니다 : 예를 들어 나는 서비스 목록에 가고 싶어 해요

www.yoursite.com/servise/:id 

그리고 난 경우 서비스 세부 사항의 일부를보고 싶어 내가 할 수있는 것들 :

www.yoursite.com/servise/:id/details 

www.yoursite.com/servise/:id/detail/:id