【发布时间】:2016-06-14 23:26:35
【问题描述】:
我想使用 Aurelia 框架实现子路由。
我不是在寻找这个解决方案,如以下链接所示,multi-level-menu。
下面是代码:
app.html
<div class="page-host">
<router-view></router-view>
</div>
app.js/app.ts
var _self = this;
this.router.configure(config => {
config.map(this.routes);
config.mapUnknownRoutes(instruction => {
_self.router.navigate(_self.defaultRoute);
return '';
});
this.router = router;
this.sideNavObj.navigationRouteList = this.router.navigation;
return config;
});
page1.html
<section>
<h2>Child Routes</h2>
<div>
<div class="col-md-2">
<ul class="well nav nav-pills nav-stacked">
<li repeat.for="row of childRoutes">
<span click.delegate="router.navigate('#/' + row.route)">${row.title}</span>
</li>
</ul>
</div>
<div class="col-md-10 childRouterDiv">
<router-view></router-view>
</div>
</div>
</section>
page1.js/page.ts
var _self = this;
this._router.configure(config => {
config.map(_self.childRoutes);
return config;
});
场景:
一旦您导航到第 1 页,相应的子路线(第 1.1 页、第 1.2 页)就会出现在相应的页面下。
但是,如果您导航到作为主菜单一部分的 page2(不是子路由或子菜单),则合成/渲染发生在 page1.html 的 <router-view></router-view> 而不是 app.html 下。
由于我的 DOM 中有两个 <router-view></router-view>,因此正在使用最近的一个。
一旦我导航到其他页面<router-view></router-view> app.html 应该被使用并且其他(page1.html)应该从 DOM 中删除。
提前致谢。
【问题讨论】:
标签: javascript aurelia