簡體   English   中英

Angular 2 RC可選路由參數

[英]Angular 2 RC Optional Routing Parameters

我嘗試在角度2 RC中實現此路線

例:

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

我怎樣才能做到這一點? 我可以使用查詢參數,但URL是“丑陋的”。 否則,如果我使用查詢參數,有一種方法可以重寫網址? 用PHP很簡單,我正在研究角度2 :)

我試圖在另一個組件中這樣做,但不起作用, name: 'message'有錯誤

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

控制台日志:for / messages / 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/'].(…)

新路由器目前要求首先訂購更具體的路由,最后訂購更少的特定路由

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

新路由器中的name不再存在。

我不確定支持只有參數不同的路由(還)

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM