2

BookDetailComponenturl にマップされたコンポーネントがあり/books/:idます。Bookangular 2ルーターで、指定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());
  }
}
4

1 に答える 1

5

はい、OnActivateインターフェイスを実装し、ロードを待機しているオブジェクトの promise を返すことにより:

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

于 2016-01-12T02:01:49.227 に答える