重定向到 aurelia 中当前范围之外定义的路由

Redirecting to routes defined outside current scope in aurelia

我的项目中有一种情况,我需要构建一个路由到在当前范围之外定义的路由。假设我有以下路由设置

/
/cars
/cars/buy
/cars/sell
/bikes
/bikes/buy
/bikes/sell

现在,在我的默认路线上,我定义了 3 条路线 /、/cars 和 /bikes。当 /cars 被激活时,我将 rotues /sell 和 /buy 附加到当前路线定义中。现在,当用户在 /cars/buy 内时,我想添加一个 link,例如 "Do you prefer to buy a bike instead?" 和 link 到 /bikes/buy。

buy/sell 之间的切换由

完成
router.navigateToRoute('buy');

router.navigateToRoute('sell');

在相应的视图模板中。

所以我正在寻找能让我做的事情

router.navigateToRoute('bikes);
router.navigateToRoute('buy');

一步到位。

您可以使用

直接导航到路线路径(而不是路线名称)
router.navigate('route/href');

即使子路由尚未注册,这也可以工作(路由器足够聪明,可以路由到子路由并等待它进一步配置路由器,然后再继续)

你的情况

router.navigate('bikes/buy');

来自 cars/buy 应该可以正常工作