2014-09-25 2 views
0

나는 다음 각 경로가 :각도 옵션라는 이름의 그룹

  $routeProvider.when('/sites/:var1/:var?/something/:year?/:month?/', { 
       templateUrl: 'path-to-template.html, 
       controller: 'PageController' 
      }); 

      $locationProvider.html5Mode(true); 

문제는 그 내가 경로를 선택 사양라는 이름의 그룹과 일치하고 최종 변환에하는 http://www.somesite.com/sites/category/something/2014/10/ 각도 시도를 쳤을 때 URL을 http://www.somesite.com/sites/category/%3F/something/2014%3F/10%3F/으로 변경하고 해당 경로로 리디렉션합니다.

누구나 선택 경로가 /?/(encoded : % 3F)로 대체되는 좋은 이유를 알고 있습니까?

도움을 주시면 대단히 감사하겠습니다. 감사합니다

EDIT 각도에서 그 라우터는 URL을 정확히 /면에서 .when에 제공 일치하는 대체입니다 어떻게됩니까

? (그리고 그 밖의 무엇이 확실하지 않은). 따라서 경로 일치가 발견되면/또는 누락 되었습니까? 그냥 추가하고 새로 고침 (각진 새로 고침) 한 다음 분명히 URL을 인코딩합니다. (??? : o)

+0

코드를 넣을 수 있습니까? –

답변

0

좁은 범위의 슬래시로 좁혔습니다. 사용 :

'/sites/:var1/:var?/something/:year?/:month?/' 

함께 : 모두에서 슬래시를 제거 않는

http://www.somesite.com/sites/category/something/2014/10/ 

가 제대로 해결. 사실 URL에 선택적으로 명명 된 그룹을 추가하면 경로가 슬래시에 종속됩니다. 에 관해서는이 문제가 발생했습니다 ...

+0

후행 슬래시 양식을 제거하면 경로가 작동합니다. 그러나 그것은 문제가되지 않습니다. 왜냐하면 역으로 문제가 있기 때문입니다. 내가 이해하려고하는 것은 선택적 이름이없는 그룹 즉, '/ something/something'이없는 경로 (후행 슬래시 유무와 상관없이)가 어느 쪽의 방법에서도 작동하지만 선택적 이름이 지정된 그룹에서는 작동하지 않는 이유입니다. – user3638565