簡體   English   中英

Ember js 中的 URL 映射

[英]Url Mapping in Ember js

我有兩條單獨的路線停車和汽車(不是嵌套路線)。

停車路線有動態段,如停車 id /parking/21和 Car 有汽車名稱和 id /car/ford/12

路由器.js:

Router.map( function() {
   this.route("parking", { path: "/parking/:parkingId"})
   this.route("car", { path: "/car/:carName/:carId" })
});

當從停車路線過渡到汽車路線時,我需要一個像(/parking/21/ford/12)這樣的網址

如果您不想嵌套,則需要在您的car路線中包含完整的 URL,如下所示:

Router.map( function() {
   this.route("parking", { path: "/parking/:parkingId"});
   this.route("car", { path: "/parking/:parkingId/car/:carName/:carId" });
});

當轉換到car路線時,您再次需要通過所有三個動態段,例如:

<LinkTo @route="car" @models=(array "myParkingId" "myCarName" "myCarId") />

或者:

this.router.transitionTo('car', "myParkingId", "myCarName", "myCarId");

我認為您的解決方案是嵌套路線:

Router.map( function() {
   this.route("parking", { path: "/parking/:parkingId"}, function() {
       this.route("car", { path: "/car/:carName/:carId" })
   });
});

然后將您現有的邏輯從parking模板移動到parking.index路線。 所以你有3條路線:

  • parking
  • parking.index帶有像/parking/1這樣的 url
  • parking.car帶有像/parking/1/car/ford/7這樣的網址

然而,您將永遠不會只停留parking路線上。 您將在parking.indexparking.car

parking.indexparking.car路線,你可以訪問的模型parking與路this.modelFor('parking')Route

您可以使用transitionTo('parking', 1)transitionTo('parking.car', 1, 'ford', 7)

暫無
暫無

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

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