[英]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
這樣的 urlparking.car
帶有像/parking/1/car/ford/7
這樣的網址然而,您將永遠不會只停留在parking
路線上。 您將在parking.index
或parking.car
。
從parking.index
和parking.car
路線,你可以訪問的模型parking
與路this.modelFor('parking')
從Route
。
您可以使用transitionTo('parking', 1)
或transitionTo('parking.car', 1, 'ford', 7)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.