【发布时间】:2017-06-07 21:00:14
【问题描述】:
在访问我的用户页面的帐户片段之前,我正在解析用户:
app-routing.component.ts
{
path: 'users/:id',
component: UserComponent,
resolve: {user: UsersService},
children: [
{path: '', pathMatch: 'full', redirectTo: 'account'},
{path: 'account', component: UserAccountComponent},
{path: 'sites', component: UserSitesComponent}
]
}
users.service.ts
resolve(route: ActivatedRouteSnapshot, r: RouterStateSnapshot) {
return this.getUser(route.params['id']);
}
user-account.component.ts
ngOnInit() {
this.route.parent.data.subscribe(data => {
this.user = data['user'];
// Initialize the form and its validators
this.initForm();
});
}
在用户帐户组件中,我可以保存或重置表单。在这两种情况下,我都想更新组件的用户并重置表单和验证器。理想情况下,它希望再次触发订阅。
知道如何手动触发解析器吗?
(我曾经以与最后一个片段为模的随机数重新导航到相同的路由,但是由于我将用户页面分解为父/子路由,因此在最后一个片段时不再调用父级中的解析器片段变化)
【问题讨论】:
-
另一种方法是使用服务而不是解析器。 stackoverflow.com/questions/39762485/… 中提到的自定义重用策略也可能起作用
标签: angular angular2-routing resolver