2014-12-28 4 views
1
나는 다음과 같은 경로를 데

와 해시 내부 슬래시 : 내 선수의사용 %의 2 층

window.m.config(['$routeProvider',($routeProvider) -> 
    $routeProvider 
    .when('/player/:index', { 
    templateUrl: 'view.html', 
    controller: 'View' 
    }) 
    .when('/', { 
    templateUrl: 'list.html' 
    controller: 'List' 
    }) 
] 
) 

일부는 자신의 이름 안에 / 있습니다. 그래서 a/b라는 선수에 대한 그 플레이어의 URL은 다음과 같은 처리를 할 때 내 응용 프로그램을로드 할 때 /player/a/b이되도록, 해시가 변경됩니다, 그러나 /player/a%2Fb

것, 예를 디코딩하고있다.

이렇게하면 특정 플레이어에 페이지가로드되지 않습니다.

비 각도 응용 프로그램에서 %2F으로 해시를 넣으면 % 2F는 /로 변환되지 않으므로 오류를 유발하는 브라우저가 아닙니다. 그러나 해시를 얻으려고하면 /player/a/b을 얻습니다. 여기서 인코딩 된 슬래시는 다른 슬래시와 같습니다.

내 경로의 변수 값 내에 슬래시는 어떻게 처리해야합니까?

답변

0

경로 인수를 생성하고 컨트롤러에 다시 삽입 할 때 슬래시를 밑줄로 대체/이스케이프합니다. 이렇게하면 차이를 피할 수 있습니다.

encodeURIComponent(encodeURIComponent("this/string/is/a/param/")) 
:
+0

플레이어 이름 사이에 충돌이 생기거나 링크가 길어질 수 있기 때문에 그럴 수는 없다고 생각하면 해결할 수 있습니다. – edi9999

+0

흠, 슬래시로 인해 문제가 발생합니다. 정수가 없습니까? 플레이어 ID 대신 사용할 수 있습니다 - 훨씬 쉬울 것입니다 :) –

+0

나는 위대한 작품 과일드 카드 경로를 사용하고 있습니다. – edi9999

0

그래서 난 그냥 GitHub의에이를 발견하고 임시 수정 프로그램을 제공하고 싶어, 내 응용 프로그램에서 나는 예를 들어 내가 주변에 임시 작품으로이 사용 있도록 이중 인코딩 된 PARAMS 만 경로를 것 발견

나를 위해 작동하는 것 같았다.