Angular 2路由器在打开组件之前解析服务器请求

The*_*ect 2 angular-ui-router angular2-routing angular

我有一个BookDetailComponent映射为url 的组件/books/:id.在angular 2路由器中是否有任何方法可以确保只有在从服务器检索到Bookgiven 后才能打开此组件id

我正在寻找像Angular 2路由器中的ui-router resolve类似的功能.

/*** BookComponent ***/
@RouteConfig([
  {path: "/books/:id", component: BookDetailComponent, as: "BookDetail"},
])

export class BookComponent {
}


/*** BookDetailComponent ***/
export class BookDetailComponent {

  book:Book;

  constructor(private bookService:BookService,
              private routeParams:RouteParams) {
  }


  ngOnInit() {
    let id = this.routeParams.get("id");
    this.bookService.getBook(parseInt(id))
      .subscribe(book => this.book = book.json());
  }
}
Run Code Online (Sandbox Code Playgroud)

Lan*_*ley 5

是的,通过实现OnActivate接口并返回您正在等待加载的对象的承诺:

https://angular.io/docs/js/latest/api/router/OnActivate-interface.html