2016-06-03 8 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/убывание/ (это не имеет никакого смысла)

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, (путь '/)' :( –

Смежные вопросы