2016-06-03 2 views
1
나는 각 2 RC에

각도 2 개 RC 선택적 라우팅 매개 변수

예를 들어이 경로를 구현하기 위해 노력

:

/search/[:category/][:subcategory/][:brand/][:page/]?limit=15&sort=price 

내가 어떻게 할 수 있습니까? 모든 것에 쿼리 매개 변수를 사용할 수는 있지만 URL은 "못생긴"것입니다. 그렇지 않으면 쿼리 매개 변수를 사용하는 경우 url을 다시 작성하는 방법이 있습니까? PHP는 매우 간단하다으로, 나는 다른 구성 요소에서 다음과 같이하려고 노력 2 :

각도 공부하고 있지만 작동하지 않고 name: 'message'

@Routes([ 
    {path:'/', component: ListMessagesComponent }, 
    {path:'/:id/', component: MessageComponent, name: 'message'}, 
    {path:'/:id/:sort/', component: MessageComponent, name: 'message-sorted'} 
]) 

콘솔 로그에 오류가 있습니다에 대한/메시지/1/DESC/ (이것은 어떤 의미가없는)

Angular 2 is running in the development mode. Call enableProdMode() to enable the production mode. 
platform-browser.umd.js:971EXCEPTION: Error: Uncaught (in promise): Cannot match any routes. Current segment: '1'. Available routes: ['/', '/:id/', '/:id/:sort/']. 
platform-browser.umd.js:962EXCEPTION: Error: Uncaught (in promise): Cannot match any routes. Current segment: '1'. Available routes: ['/', '/:id/', '/:id/:sort/'].BrowserDomAdapter.logError @ platform-browser.umd.js:962BrowserDomAdapter.logGroup @ platform-browser.umd.js:972ExceptionHandler.call @ core.umd.js:3696(anonymous function) @ core.umd.js:8951schedulerFn @ core.umd.js:6007SafeSubscriber.__tryOrUnsub @ Subscriber.ts:240SafeSubscriber.next @ Subscriber.ts:192Subscriber._next @ Subscriber.ts:133Subscriber.next @ Subscriber.ts:93Subject._finalNext @ Subject.ts:154Subject._next @ Subject.ts:144Subject.next @ Subject.ts:90EventEmitter.emit @ core.umd.js:5996onError @ core.umd.js:6227onHandleError @ core.umd.js:6096ZoneDelegate.handleError @ zone.js:327Zone.runGuarded @ zone.js:233_loop_1 @ zone.js:487drainMicroTaskQueue @ zone.js:494ZoneTask.invoke @ zone.js:426 
platform-browser.umd.js:962STACKTRACE:BrowserDomAdapter.logError @ platform-browser.umd.js:962ExceptionHandler.call @ core.umd.js:3698(anonymous function) @ core.umd.js:8951schedulerFn @ core.umd.js:6007SafeSubscriber.__tryOrUnsub @ Subscriber.ts:240SafeSubscriber.next @ Subscriber.ts:192Subscriber._next @ Subscriber.ts:133Subscriber.next @ Subscriber.ts:93Subject._finalNext @ Subject.ts:154Subject._next @ Subject.ts:144Subject.next @ Subject.ts:90EventEmitter.emit @ core.umd.js:5996onError @ core.umd.js:6227onHandleError @ core.umd.js:6096ZoneDelegate.handleError @ zone.js:327Zone.runGuarded @ zone.js:233_loop_1 @ zone.js:487drainMicroTaskQueue @ zone.js:494ZoneTask.invoke @ zone.js:426 
platform-browser.umd.js:962Error: Uncaught (in promise): Cannot match any routes. Current segment: '1'. Available routes: ['/', '/:id/', '/:id/:sort/']. 
    at resolvePromise (zone.js:538) 
    at resolvePromise (zone.js:523) 
    at zone.js:571 
    at ZoneDelegate.invokeTask (zone.js:356) 
    at Object.onInvokeTask (core.umd.js:6066) 
    at ZoneDelegate.invokeTask (zone.js:355) 
    at Zone.runTask (zone.js:256) 
    at drainMicroTaskQueue (zone.js:474) 
    at XMLHttpRequest.ZoneTask.invoke (zone.js:426)BrowserDomAdapter.logError @ platform-browser.umd.js:962ExceptionHandler.call @ core.umd.js:3699(anonymous function) @ core.umd.js:8951schedulerFn @ core.umd.js:6007SafeSubscriber.__tryOrUnsub @ Subscriber.ts:240SafeSubscriber.next @ Subscriber.ts:192Subscriber._next @ Subscriber.ts:133Subscriber.next @ Subscriber.ts:93Subject._finalNext @ Subject.ts:154Subject._next @ Subject.ts:144Subject.next @ Subject.ts:90EventEmitter.emit @ core.umd.js:5996onError @ core.umd.js:6227onHandleError @ core.umd.js:6096ZoneDelegate.handleError @ zone.js:327Zone.runGuarded @ zone.js:233_loop_1 @ zone.js:487drainMicroTaskQueue @ zone.js:494ZoneTask.invoke @ zone.js:426 
zone.js:461 Unhandled Promise rejection: Cannot match any routes. Current segment: '1'. Available routes: ['/', '/:id/', '/:id/:sort/']. ; Zone: angular ; Task: Promise.then ; Value: BaseException {message: "Cannot match any routes. Current segment: '1'. Available routes: ['/', '/:id/', '/:id/:sort/'].", stack: "Error: Cannot match any routes. Current segment: '…st:3000/node_modules/zone.js/dist/zone.js:322:35)"}consoleError @ zone.js:461_loop_1 @ zone.js:490drainMicroTaskQueue @ zone.js:494ZoneTask.invoke @ zone.js:426 
zone.js:463 Error: Uncaught (in promise): Cannot match any routes. Current segment: '1'. Available routes: ['/', '/:id/', '/:id/:sort/'].(…) 

답변

0

새로운 라우터는 현재보다 구체적인 경로가 먼저 적은 특정 사람은 마지막 순서로 정렬해야합니다

@Routes([ 
    {path:'/:id/:sort/', component: MessageComponent} 
    {path:'/:id/', component: MessageComponent}, 
    {path:'/', component: ListMessagesComponent }, 
]) 

name은 새 라우터에 더 이상 존재하지 않습니다.

나는 ('/ 경로)'전용 (아직) 지원되는 매개 변수에 차이가 확실하지 않은 루트

{path:'/:id/:sort/', component: MessageComponent} 
    {path:'/:id/', component: MessageComponent}, 
+0

작품 만/메시지/URL을 해요 :( –