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