2016-09-16 2 views
1

주어진 다음과 같은 경로를 '% 2 층'만하지 '/'인식 : 각도 routeProvider URL에

localhost/contactus <- GET /contactus 200 
localhost/unsubscribe/abc <- GET /unsubscribe/abc 404 
localhost/unsubscribe%2Fabc <- GET /unsubscribe%2Fabc 200 
localhost/users/validate?key=1 <- GET /users/validate?key=1 404 
localhost/users%2Fvalidate?key=1 <- GET /users%2Fvalidate?key=1 404 
localhost/users%2Fvalidate%3Fkey%3D1 <- GET /users%2Fvalidate%3Fkey%3D1 404 

그래서 제 질문은 다음과 같습니다? 1) 방법의 유효성을 검사 키 = 1 일 /은/사용자를 만들기 위해? 2) URL 인코딩을 사용하지 않는 방법입니까? 인코딩을 사용하면 브라우저에서 /unsubscribe%2Fabc/unsubscribe/abc으로 변환하지만 페이지 또는 copiay를 새로 고치고 인코딩 값 대신 '/'를 사용하므로이 URL을 붙여 넣기하면 다시 작동하지 않습니다. URL 가져 오기 데이터에 대한

+0

아마도 쓸모가 없겠지만,이 라이브러리가 ngRouter를 확장하고 원하는 검색어로 params 유형을 사용하도록 'ui-router'를 사용하는 것이 좋습니다. 중첩 된 뷰 –

+0

'$ locationProvider.html5Mode'를 설정했다고 가정하면, 서버 측에서 URL 재 작성을 구성 했습니까? – Phil

+0

@ Phil 당신은 더 구체적 일 수 있습니까? 나는 당신이 기본 bref = "/"에 대해 이야기하고 있다고 가정하고있었습니다. – jamesdeath123

답변

0
app.config([ 
'$locationProvider', '$routeProvider', 
function ($locationProvider, $routeProvider) { 
    $locationProvider.html5Mode({ 
     enabled: true, 
     requireBase: false 
    }).hashPrefix('!'); 
    var viewBase = '/app/views/'; 
    $routeProvider   
    .when('/admin/home/appliedlist/:userid1/:userid2/:userid3', { // For appliedlist page 
     templateUrl: viewBase + 'EditAppliedList.html', 
     controller: 'EditController' 
    }) 
    .otherwise({ // This is when any route not matched => error 
     templateUrl: viewBase + 'Error.html'   
    }) 
}]); 

app.controller('EditController', ['$scope', '$routeParams', function ($scope, $routeParams) {  
    $scope.Type = $routeParams.userid3; 
    $scope.Name = $routeParams.userid2; 
    $scope.ID = $routeParams.userid1; 
}]); 

및 데이터 전달에 같은 사용

<a href="/admin/home/appliedlist/12/pravin/{{MyencodingLogic(employee)}}">Edit</a> 

넣어 인코딩 코드를

<a href="/admin/home/appliedlist/12/pravin/employee">Edit</a> 
또한

당신이 인코딩하고 디코딩 된 데이터를 URL로 함수 'MyencodingLogic' 당신이 $ routeParams

+0

내 질문에 대해 얘기하고 계시 니? 나는 당신의 코드가 제시 한 경로 매개 변수와 다른 유효성 검사? 키 = 1과 식별자 = 2와 같은 쿼리 문자열을 사용하는 url을 원할 것이다. – jamesdeath123

0

을 통해 가치를 EditController를 내부

및 디코딩 코드 사용은 그냥 그렇게 다른 사람이 문제로 실행 : 내가 한

이 솔루션은 필 주석에 언급 된 서버를 변경하는 것입니다.

내 서버 측 있었다 노드입니다 :

app.get('/:page', callback); 

을하고 내가 한 모두로 변경하는 것입니다

app.get('/*', callback); 

그리고이 솔루션은 내 질문을 모두 해결합니다.

관련 문제