0
我有这段代码。父亲路线的角2解析
为'用户'路由'新'这条子路线。 路由'用户'有解析器。 这工作很好。
但成功后创建用户。 我重定向到'用户',但新用户不在列表中显示,因为 DataResolver在从子路由重定向后不起作用。
我该如何解决?
//Roiting
export const ROUTES: Routes = [
{ path: 'dashboard',
component: Dashboard,
children: [
{ path: 'users',
component: Users,
resolve: {
users: DataResolver
},
children: [
{ path: 'new', component: NewUser }
]
},
]
}
];
//Resolver
@Injectable()
export class DataResolver implements Resolve<any> {
constructor(private userService: UserService) {}
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> {
return this.userService.all(); // return users
}
}
//Component
export class NewUser {
errorMessage: string;
user: User;
constructor(public route: ActivatedRoute,
private userService: UserService,
private router: Router) {
this.user = new User();
}
onSubmit(): void {
this.userService
.createUser(this.user)
.subscribe(
user => {
this.router.navigate(['/dashboard', 'users']);
},
error => this.errorMessage = <any>error);
}
}
// USers component
export class Users implements OnInit {
users: User[];
constructor(public route: ActivatedRoute,
private router: Router) {
this.route.data.subscribe((data: any) => {
this.users = data.users;
});
}
}
是我的用户组成是这样的。 (我是更新问题) – schumi
是的。 问题是解析器在从子路由器转换时不起作用。 – schumi
我更新了答案,我没有像您使用的方式使用路由。也许它有帮助。 – ulubeyn