通过服务将父路由参数传递给子路由

2023-12-23

我正在尝试使用 Angular 团队当前推荐的方法将路由参数从父组件传递到子组件:https://angular.io/docs/ts/latest/cookbook/component-communication.html#!#bidirection-service https://angular.io/docs/ts/latest/cookbook/component-communication.html#!#bidirectional-service

父级能够成功订阅正确发出的服务。然而,当页面加载时,子进程不会收到任何东西。

Service

@Injectable()
export class AbcService {
  public paramSource: Subject<any> = new Subject<any>();
  public getParams(params) {
    this.paramSource.next(params);
  }
}

Parent

import { Component } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { AbcService } from './abc.service';

@Component({
  providers: [AbcService],
  ...,
})

export class AbcComponent {
  constructor(
    private route: ActivatedRoute,
    private abcService: AbcService,
  ) {
    route.params.subscribe(
      (params) => abcService.getParams(params);
    );
  }
}

Child

export class AbcChildComponent {
  constructor(private abcService: AbcService) {
      abcService.paramSource.subscribe((params) => {
          console.log(params);
      });
  }
}

我认为代码是正确的,但事件丢失了。当您下次打电话时,没有人在听主题。一种方法是使用ReplaySubject另一个是调用下一个ngAfterViewInit打回来。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过服务将父路由参数传递给子路由 的相关文章

随机推荐

  • 如何在 JavaScript 中禁用重复按键[重复]

    这个问题在这里已经有答案了 我和这个人有同样的问题如何禁用 jQuery 中的重复按键 https stackoverflow com questions 9098901 how to disable repetitive keydown
  • Eclipse Maven 依赖项未找到

    我已添加到项目存储库的 pom xml 中
  • Swing - 替代 Qt 信号/槽

    在 Qt GUI 中 使用信号和槽非常方便 它解耦事件传递 当我创建一些抛出信号的小部件时 我不必提前知道谁可以获取它 然后使用connect我指定连接 Java Swing 中什么是并行 您能指出关于这个问题的好资源吗 如果没有现有的Ev
  • 在 Jade 中快速显示 mongodb 文档

    我正在学习 Node Express Jade 和 Mongodb 我无法在 jade 中显示我的 mongodb 文档 我自己无法弄清楚 我已使用 console log 成功记录所有文档 并且它正确显示所有文档 请不要使用猫鼬或其他解决
  • 如何在 ruby​​ 上的哈希中创建 deep_slice

    我正在寻找一种干净的方法来执行此操作 我找到了一些解决方法 但没有找到类似切片的东西 有些人建议使用 gem 但我认为此操作不需要 如果我错了 请纠正我 所以我发现自己有一个包含一堆哈希值的哈希值 我想要一种方法来执行Slice https
  • 更改每个文件的下载位置和名称

    我正在使用 Selenium 和 Chrome WebDriver 进行自动化 该应用程序必须执行一系列下载 需要使用不同的名称 数据 报告类型 和与我正在下载的报告类型匹配的文件夹进行保存 问题是我只能在实例化新驱动程序时设置默认目录 v
  • spring 2.5中基于注解的配置和基于xml的配置可以一起使用吗?

    我一直在从事一个项目 其中控制器是为了扩展控制器类而编写的 我可以在同一应用程序中配置和使用基于 POJO 的控制器 使用 Controller 吗 非常感谢 感谢 jamestastic 和 skaffman 现在一切正常 以下是需要添加
  • 无法在 Windows 8 应用程序内创建动态磁贴

    我的要求是在应用程序页面之一内创建动态磁贴 但现在我能够创建仅驻留在 Windows 8 平板电脑的开始屏幕中的图块 但我需要在应用程序内创建一个图块 我使用的环境 Visual Studio 2011 测试版 其针对平板电脑的 Windo
  • 在 CodeIgniter 中扩展 HMVC 模块

    假设我们有一个名为core crud在控制器中使用类似的内容 if defined BASEPATH exit No direct script access allowed class Core crud extends MX Contr
  • OpenFileDialog VBA (Powerpoint) 初始目录

    请帮我做我的OpenFileDialog显示我的 PowerPoint 项目目录 我试过 InitialDirectory C 但它不起作用 我可以适应这个吗vba questions tagged vba 谢谢 这几乎是从 Powerpo
  • 为什么为 numpy 函数选择名称“arange”?

    numpy 函数有具体原因吗arange https docs scipy org doc numpy reference generated numpy arange html被如此命名 People 习惯性地 https www goo
  • 如何在 F# 中比较 x 和 y?

    我需要有关比较 2 个数字的匹配模式的帮助 像这样的东西 let test x y match x with y when x lt y gt printfn less than y when x gt y gt printfn great
  • 如何检测函数的输出是否分配给 R 中的对象

    在 R 函数内部 是否可以检测用户是否已将输出分配给对象 例如 仅当输出未分配给对象时 我想在控制台上打印一些信息 我正在寻找类似的东西 fun lt function a b lt a 2 if
  • 将 JComponent 及其子组件视为一个整体的工具提示行为? (无闪烁)

    我有一个带有多个子组件的 JComponent 我希望它有一个将组件视为一个整体的工具提示 例如 如果你看这个解决方案 https stackoverflow com a 284101 411282对于类似的问题 当您从一个子组件切换到另一
  • JSONcpp 迭代对象内的列表

    我的 json 对象中有一个列表 我想迭代列表的元素 我看到了下面这个帖子遍历 JsonCpp 中的对象 https stackoverflow com questions 4800605 jsoncpp iterate thru all
  • AVAudioPlayer 返回成功但设备没有声音

    我有一个非常简单的应用程序 我构建它来测试 AVAudioPlayer 我有一个 16s aif 文件 在我的 Mac 上运行得很好 把它放在一个简单的应用程序中并在我的 iPhone 上运行但没有声音 向对象发送 play 会返回成功 并
  • 对象属性的参考行为

    var myObject new Object var myObjectCopy myObject myObject Name alav logs Name alav on both variable console log myObjec
  • 为什么持有自旋锁时不允许“睡眠”? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么持有自旋锁时不能睡觉 https stackoverflow com questions 4752031 why cant you sleep while holding spinlock 据我
  • 为什么 Laravel 设置环境后使用错误的数据库文件?

    In bootstrap start php我有以下内容 env app gt detectEnvironment function if myenv getenv APPLICATION ENV return myenv else ret
  • 通过服务将父路由参数传递给子路由

    我正在尝试使用 Angular 团队当前推荐的方法将路由参数从父组件传递到子组件 https angular io docs ts latest cookbook component communication html bidirecti