首页 > 解决方案 > 使用 Aurelia 路由器,我如何定义到同一个视图的两条路由?

问题描述

我有一个子路由器。假设它是为了花哨的水果。在该子路由器中,我想使用 RouteConfig nav: true 来定义特定水果的路线,这些路线将显示在导航中:

config.map([
    { route: [":fruit"], name: "AppleFruit", moduleId: PLATFORM.moduleName("./fruity-fruit-fruit"), nav: true, title: "Apples are yum!", layoutModel: { fruit: "Apple" } },
    { route: [":fruit"], name: "LemonFruit", moduleId: PLATFORM.moduleName("./fruity-fruit-fruit"), nav: true, title: "Lemons are for booze!!", layoutModel: { fruit: "Lemon" } }
]);

具体来说,我想这样做是因为页面上的导航元素依赖于该子路由器中的其他路由,我希望这些元素与其他路由一起出现在导航中。我的想法是 layoutModel 会被传递到 fruity-fruit-fruit 中的激活参数中,但它只是在到达那一点之前就爆炸了。

这是可能的,还是我做错了什么?

标签: aurelia

解决方案


正如经常发生的那样,我找到了答案。我的问题是我使用的是 layoutModel 而不是仅仅指定 href。它应该是:

config.map([
  { route: [":fruit"], name: "AppleFruit", moduleId: PLATFORM.moduleName("./fruity-fruit-fruit"), nav: true, title: "Apples are yum!", href: "/fruits/Apple" },
  { route: [":fruit"], name: "LemonFruit", moduleId: PLATFORM.moduleName("./fruity-fruit-fruit"), nav: true, title: "Lemons are for booze!!", href: "/fruits/Lemon" }
]);

推荐阅读