如何在不使用@Output的情况下,在Angular2 rc6中共享子/父组件中的参数变量



我需要访问父组件中发送给子组件的Params变量。

我有以下结构:

路由(摘录):

  {
      path: 'song',
      component: SongExerciseComponent,
      children: [
          {
              path: 'reading/:id',
              component: SongReadingComponent,
          }
      ]
  }

父组件只是一个包含导航链接的模板。我可以像这样访问子组件中的:id变量:

  ngOnInit(): void {
    this.route.params.forEach((params: Params) => {
      if (params['id'] !== undefined) {
        let id = +params['id'];

现在我需要父组件中的相同变量在父模板中使用。

哪一种方法最有效?共享服务?https://angular.io/docs/ts/latest/cookbook/component-communication.html !# parent-and-children-communicate-via-a-service

你可以创建一个共享服务或者使用Ngrx store,灵感来自于Angular2的Redux。

你可以在那里阅读- https://gist.github.com/btroncone/a6e4347326749f938510

这个解决方案的优点是您可以订阅更改并对其作出反应。此外,数据是不可变的,因此您不会错误地更改某些内容。

相关内容

  • 没有找到相关文章

最新更新