Url Ember js 中的映射
Url Mapping in Ember js
我有两条独立的路线 parking 和 Car(不是嵌套路线)。
停车路线有动态路段,如停车 ID /parking/21
和
车有车名和车号 /car/ford/12
Router.js:
Router.map( function() {
this.route("parking", { path: "/parking/:parkingId"})
this.route("car", { path: "/car/:carName/:carId" })
});
当从停车路线过渡到汽车路线时,我需要一个 url 比如 (/parking/21/ford/12)
我认为你的解决方案是嵌套路由:
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
parking.car
网址如 /parking/1/car/ford/7
然而,您永远不会 只 在 parking
路线中。您将在 parking.index
或 parking.car
.
从 parking.index
和 parking.car
路线,您可以使用 Route
.[=28] 的 this.modelFor('parking')
访问 parking
路线的模型=]
您可以使用 transitionTo('parking', 1)
或 transitionTo('parking.car', 1, 'ford', 7)
进行转换。
如果您不想嵌套,那么您需要在 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");
我有两条独立的路线 parking 和 Car(不是嵌套路线)。
停车路线有动态路段,如停车 ID /parking/21
和
车有车名和车号 /car/ford/12
Router.js:
Router.map( function() {
this.route("parking", { path: "/parking/:parkingId"})
this.route("car", { path: "/car/:carName/:carId" })
});
当从停车路线过渡到汽车路线时,我需要一个 url 比如 (/parking/21/ford/12)
我认为你的解决方案是嵌套路由:
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
parking.car
网址如/parking/1/car/ford/7
然而,您永远不会 只 在 parking
路线中。您将在 parking.index
或 parking.car
.
从 parking.index
和 parking.car
路线,您可以使用 Route
.[=28] 的 this.modelFor('parking')
访问 parking
路线的模型=]
您可以使用 transitionTo('parking', 1)
或 transitionTo('parking.car', 1, 'ford', 7)
进行转换。
如果您不想嵌套,那么您需要在 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");