2

Angular2 をテストするための単純な 1 コンポーネント アプリを作成しようとしていますが、アプリ コンポーネントの RouteParams へのアクセスに非常に行き詰まっています。

これは私がこれまでに持っているものです:

@Component({
  selector: 'app',
  template: '<h1>ID: {{id}}</h1>',
  directives: [ROUTER_DIRECTIVES],
  providers: []
})
@RouteConfig([
  { path: '/', component: App }
])
class App {
  private id: string

  constructor(params: RouteParams) {
    this.id = params.get('id')
  }
}

bootstrap(App, [
  ROUTER_PROVIDERS,
])

したがって、基本的に私が達成したいのは、ユーザーがhttp://website.com/?id=21にアクセスしてから、Web サイトに 21 を表示することです。そのための別のコンポーネントが必要で、AppComponent が必要ですかそのコンポーネントへのルートを提供するか、アプリ コンポーネントのルート パラメータにアクセスする方法はありますか?

4

2 に答える 2

1

これはあなたが望むことをするかもしれません

  constructor(private router:Router, private routeSerializer:RouterUrlSerializer, private location:Location) {
    router.changes.first().subscribe(() => {
      let urlTree = this.routeSerializer.parse(location.path());
      console.log('serializer', urlTree.children(urlTree.root)[0].segment);
      // or to get the next segment of the path:
      // console.log('serializer', urlTree.children(urlTree.children(urlTree.root)[0])[0].segment);
    });
  }
于 2016-05-14T19:16:46.163 に答える