Using Resolve In Angular2 Routes

前端 未结 5 892
盖世英雄少女心
盖世英雄少女心 2020-11-27 15:05

In Angular 1 my config looks like this:

$routeProvider
  .when(\"/news\", {
    templateUrl: \"newsView.html\",
    controller: \"newsController\",
    resol         


        
5条回答
  •  囚心锁ツ
    2020-11-27 16:10

    @AndréWerlang's answer was good, but if you want the resolved data on the page to change when the route parameter changes, you need to:

    Resolver:

    @Injectable()
    export class MessageResolver implements Resolve {
    
      constructor(private messageService: MessageService, private router: Router) {}
    
      resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {
        const id = +route.params['id'];
        return this.messageService.getById(id);
      }
    }
    

    Your component:

    ngOnInit() {
      this.route.data.subscribe((data: { message: Message }) => {
        this.message = data.message;
      });
    }
    

提交回复
热议问题