【发布时间】:2016-07-06 02:51:35
【问题描述】:
我设置了一个plnkr 来演示我想问什么
我在一个网络应用中有一些组件,
父组件App
@Component({
selector: 'my-app',
providers: [],
template: `
<div class="main-container">
<h2>This is the base. This div must be seen on app pages</h2>
<a [routerLink]="['Home']"> Home </a> |
<a [routerLink]="['Users']"> Users </a> |
<a [routerLink]="['Contact']"> Contact </a>
</div>
<router-outlet></router-outlet>
`,
directives: [ROUTER_DIRECTIVES]
})
@RouteConfig([
{
path: '/',
name: 'Home',
component: HomeComponent,
useAsDefault: true
},
{
path: '/users/...',
name: 'Users',
component: UsersComponent
},
{
path: '/contact',
name: 'Contact',
component: ContactComponent
}
])
export class App {
}
UsersComponent 被加载到父控制器的router-outlet 路由/users,如下所示,
@Component({
selector: 'my-app',
template : `
<div *ngFor="#page of pages">
<a [routerLink]="[page.name]">
{{page.slug}}
</a>
</div>
<router-outlet></router-outlet>
`
})
@RouteConfig([
{path : '/', name: 'Main', component: MainRoute, useAsDefault: true}
])
export class UsersComponent{
/**
* some methods to configure the routes,
*/
}
UsersComponent为用户动态配置路由,
例如。 /alex、/john 等,
由于路由来自子组件,因此路径看起来像 example.com/users/alex、example.com/users/john 等。但我希望路径是 example.com/alex 和 example.com/john
我还想将与每个用户关联的组件加载到父级的router-outlet。在这里的例子中,到App的router-outlet,这样我就可以摆脱用户列表了。
感谢您的帮助。
【问题讨论】:
-
您在关注文档时是否遇到任何错误? angular.io/docs/ts/latest/guide/router.html
-
看看this分叉的plunker。它工作一次。但是,如果您单击用户>用户,然后再次单击用户,则会引发异常。近了吗?
标签: typescript angular angular2-routing