RxJS 订阅未触发

2023-12-08

目前正在学习 RxJS。我有一个整数selectedCourseIndex在我想要订阅一个单独的组件的服务中。

课程部分.service.ts

private selectedCourseIndex: number = -1; //this number can change from another method
private selectedCourseIndexUpdated = new Subject<number>();

getSelectedCourseUpdateListener(){
    return this.selectedCourseIndexUpdated.asObservable();
}

课程部分.component.ts

  private selectedCourseIndex: number = -1; //Placeholder initial selectedCourseIndex until new one given on init from courses-section service
  private selectedCourseSub: Subscription;

  constructor( public coursesSectionService: CoursesSectionService ){}

  ngOnInit(){
   this.selectedCourseIndex = 
   this.coursesSectionService.getSelectedCourseIndex();
   this.selectedCourseSub = this.coursesSectionService
    .getSelectedCourseUpdateListener()
    .subscribe((selectedCourseIndex: number) => {
      this.selectedCourseIndex = selectedCourseIndex;
      console.log('this fires when subscription updates'); //this never fires once
    });
  }

但是,订阅永远不会触发,无论是在最初订阅时还是在整数更改时。怎么了?


“Subject”可观察对象不会在订阅时重放之前的值。仅当您[以某种方式]在服务中执行以下操作时,您的订阅才会触发 -

this.selectedCourseIndexUpdated.next(<your new number>);

要在每个订阅上触发订阅[以获取最后发出的值],您应该使用“BehaviorSubject”而不是像这样的主题 -

private selectedCourseIndexUpdated = new BehaviorSubject<number>(0);

BehaviorSubject 重放每个订阅上最后发出的值。请注意,BehaviorSubject 构造函数采用默认值。

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

RxJS 订阅未触发 的相关文章

  • 组件没有路由配置 - 嵌套路由 angular2 RC1

    我有嵌套路线 Routes path component RootComponent path parent component ParentComponent 二级路由有参数 Routes path id component ChildC
  • Mat-table 多行内的多行

    我想要的内容如下图所示 我使用 Angular Material 7 x 并使用 Mat Table 实现 如下所述 https material angular io components table overview https mat
  • Angular Firebase 电子邮件验证验证后错误

    我正在使用电子邮件和密码设置授权功能 一切正常 但当我创建新用户时 应用程序会发送一封带有验证链接的电子邮件 验证电子邮件地址后 我想登录 以便返回登录表单 emial verified 保持在 假 状态 在我硬重新加载页面后 这是 真 但
  • Angular 7 Guard 重定向仅适用于双击

    问题是我已经实现了一个 Guard 旨在处理特定的目录 如果当前用户名的角色等于 2 它应该返回 true 如果没有 那么它不应该重定向 这是我的 app routing module ts 文件 问题出在 userlist 路径中 我们是
  • 传单 - 导入 Geojson - Angular 6

    我尝试将 GeoJson 文件导入到 Angular 的应用程序 6 中的传单中 通过这个解决方案 我的 geojson 是在 leafletmap 中绘制的 但我有这个错误 我无法构建我的应用程序 有人知道一种解决方案吗 错误 TS234
  • 如何按顺序使用 RxJS 可观察量?

    事情是这样的 我有一个 HTTP get 请求 它返回一个 JSON 对象列表 我使用 RxJS 订阅接收该列表的数据 现在 对于该列表中的每个对象 我想执行另一个 HTTP 请求 然后将该请求的结果放入数组中 到目前为止 我已经能够做到这
  • 将打字稿中的字符串转换为时间格式

    我必须将服务器数据转换为字符串格式13 47 to 01 47PM但我正在尝试 time date hh MM and task time date shortTime 但它显示日期管道错误和参数错误 运行时错误 InvalidPipeAr
  • 类型错误:无法读取未定义的属性“post”

    嗨 我只想使用一个简单的功能 http post 将我的日期发布到页面 我希望服务器能够获取我发布的日期 import Component OnInit from angular core import MarginServcies fro
  • 严格模式下不允许属性的多个定义 - Angular

    我在 IE 中的 Angular 6 项目中遇到了这个问题 这导致应用程序无法加载 它仅发生在应用程序的产品版本中 该版本由 Angular 连接和缩小 在 ngserve 下运行的本地开发版本并未导致该问题 此错误出现在 Chrome 开
  • 如何检查 Angular 7 中的输入字段是否处于焦点[重复]

    这个问题在这里已经有答案了 我有一个表单 我想知道表单中的任何输入字段是否获得焦点 我读了 NgForm 文档但没有找到任何相关的 focus I found touched但它不能满足需求 您可以使用焦点和模糊事件来跟踪字段获得或失去焦点
  • 如何为角度中的备用列添加背景颜色

    我使用角度材料垫桌子组件创建了一个简单的角度桌子 使用下面的样式我可以为备用行着色 但是当我将下面的样式中的行更改为列时 这不适用于列 mat row nth child even background color f2f4f7 mat r
  • 导入 ng2-datetime 时遇到问题

    我正在尝试将 ng2 datetime 导入到我的应用程序中 因为它似乎是唯一可用的日期选择器弹出窗口 可以让您限制日期范围 无论如何 根据其文档 https www npmjs com package ng2 datetime 我安装了n
  • 无法读取未定义的属性“toUpperCase”(“<输入名称 =“searchtext”[(ngModel)] =“searchtext”>

    我正在尝试从数字数组中过滤数字 但我遇到了这个错误 这是我的代码 应用程序模块 ts import BrowserModule from angular platform browser import NgModule from angul
  • Angular2 - 更改位置而不触发路线

    我有一个使用服务来加载项目列表的视图 我总是只显示一个项目 并使用 gt 按钮在项目之间移动 有没有办法在不触发 Angular 路由系统的情况下更改浏览器地址栏中的地址并将记录添加到浏览器历史记录中 我知道如果我使用 location g
  • Angular 中的动态子组件

    我正在构建一个具有一致的元素列表设计模式的应用程序 如果我有一个 A 类型的对象 我会创建AComponent它接受a作为输入 然后创建另一个组件来迭代 A 列表 AListComponent 那么如果我有一个对象 B 我需要做同样的事情
  • 角度分割列表

    我有一个看起来像这样的列表 A B C 是否有任何简单的方法 而无需创建一个函数 将其展平为一个看起来像这样的数组 A B C 我搜索了 SO 但没有找到任何带有打字稿方法的内容 Thanks 编辑 A B C 是相同类型 看来您正在寻找的
  • Angular 2 兄弟组件通信

    我有一个列表组件 当在 ListComponent 中单击某个项目时 该项目的详细信息应显示在 DetailComponent 中 两者同时出现在屏幕上 因此不涉及路由 如何告诉详细组件列表组件中的哪个项目被单击 我考虑过向父级 AppCo
  • Angular2指令修改点击处理

    我正在尝试编写 Angular2 属性指令来修改某些元素的行为 更具体地说 我想将属性应用于具有单击处理程序的某些元素 并防止在某些条件下执行绑定函数 所以现在我有一个元素 例如
  • Angular 应用程序在 IE11 中给出空白页面

    Angular应用程序仅加载于Internet Explorer浏览器版本 当开发人员工具 F12 侧边栏打开时 没有使用任何 MDL 组件 因此它不同于this https github com google material desig
  • 将参数传递给 Angular2 组件

    我正在学习 Angular2 所以要温柔 我有一个带有字符串数组的基本组件 我想将一个整数传递给该组件并让它返回在该参数的索引处找到的字符串 例如 myComponent number 1 返回字符串 第二个元素 到目前为止我的代码是这样的

随机推荐

  • 将不同格式的字符串转换为日期

    我有一个带有字符串列的表 varchar 200 包含不同格式的日期 例如 may 24 1983 12 00AM 1981 01 13 00 00 00 1979 01 13 00 00 00 123 我想将此列转换为日期以提取年份 我该
  • 最有效地查找数组中的最小值

    数组中有N个值 其中最小的一个 如何最有效地找到最小值 如果它们没有排序 你就不能做太多事情 只能查看每一个 这是 O N 完成后你就会知道最小值 伪代码 small
  • HTML表单文件上传不起作用,$_POST不转发数据

    也许现在还为时过早 但无法找出问题所在 我已经制作了几个表格 但这次由于某种原因我无法转发文件输入的数据 这是我的索引 php 表格所在的位置
  • 在python中获取一组二维列表

    我有一个list如下 t 1 7 3 7 1 7 5 8 3 7 我需要得到一个set因此输出将是这样的 t 1 7 3 7 5 8 我尝试使用t set t 但没有成功 如果不关心顺序的话 可以先转换一下内层lists to tuples
  • 用户定义类模板参数推导的缩写函数模板语法指南

    我正在以缩写函数模板的风格编写推导指南 但我不确定是否允许 它可以在 gcc 和 clang 上编译 但不能在 msvc 上编译 错误是 错误 C3539 模板参数不能是包含 auto 的类型 哪个编译器正在做正确的事情 在这里尝试一下 t
  • 无法执行目标 org.apache.maven.plugins:maven-surefire-plugin:2.10:test

    我已经在互联网上搜索了近五天 寻找解决这个问题的方法 但我似乎无法自己找到并解决它 主要是因为我对 Maven 和 PlayN 都很陌生 所以我不完全确定我到底在看什么 但是 它显然在构建核心方面正忙得不可开交 似乎无法下载 工件过滤器 并
  • 为 Domino Java 代理创建交叉证书?

    我正在尝试使用 Domino java 代理连接到启用 https 的 Web 服务 使用 http 可以正常工作 但使用 https 则失败 我禁用了 TLS 1 2 显然 Fix Pack 4 和 5 有 TLS 1 2 和 Java
  • SoapUI Testrunner 给出有关 TestAssertionRegistry 的错误

    我能够使用有效的断言成功运行我的测试用例 但是当通过 testrunner 运行时 它会以这些错误开始 ERROR TestAssertionRegistry Missing assertion for type JsonPath Matc
  • onsubmit:返回 false;在 Rails 4 中如果 remote: true 则被忽略

    我在 Rails 4 中有以下形式 我的 validateForm 函数如下所示 function validateForm return false 即使它被调用 也会执行 AJAX 提交 我怎样才能避免这种情况 那么 如果函数 vali
  • “Klass:method(p)”中的“:”(单个冒号)是什么意思?

    今天我看到了这段代码 void CameraTree dragMoveEvent QDragMoveEvent event QTreeWidget dragMoveEvent event 我认为上面的代码是错误的 但 void Camera
  • (ggplot2 更新?)带有百分比标签的堆叠条形图

    我正在复制一些所有脚本 一年多前编码 发现我不再得到相同的情节 我使用相同的数据集和相同的代码 唯一的区别是我的 R 安装和 ggplot2 的版本 所以我假设这就是问题所在 让我用几个愚蠢的情节向你展示这个问题 当生成带有百分比标签的堆叠
  • 如何修复重叠的 Google 图表图例

    这是我已经研究了几个小时的事情 但我似乎找不到有效的解决方案 我有一个页面 ASP NET Core 上面有引导选项卡 每个选项卡显示不同的图表 我已经阅读了各种答案 并从这个网站和其他网站尝试了很多不同的事情 但我确信我做错了什么 这是我
  • 使用最频繁的值按组填充缺失值

    我正在尝试使用一组使用最频繁的值来估算缺失值pandasPython 中的模块 在检查了 Stack Overflow 上的一些帖子后 我成功实现了这一目标 import numpy as np import pandas as pd df
  • 使用 rgb2ind 减少 matlab 中的颜色数量

    我正在做一些图像处理 我需要减少图像的颜色数量 我找到rgb2ind可以做到这一点并编写了以下代码片段 clc clear all X map rgb2ind RGB 6 nodither X rgb2ind RGB map rgb ind
  • 如何防止 Rails 在生产环境中记录操作视图

    在 Rails 3 2 0 中 是否可以关闭 Rails 日志记录以渲染视图 生产环境中的ActionView LogSubscriber 目前我发现抑制的唯一方法是猴子修补它并增加日志级别以通过以下方式进行调试 有没有更好的方法或任何配置
  • 关于 np.all 与 axis 的使用

    我尝试测试使用np all 测试数组a is a array 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 0 255 0 0 b 255 0 255 c np all a b axis 1
  • 将数据从一个 MySQL 表移动到另一个表

    当用户单击名为 删除 的按钮时 我试图将数据从一个数据库 注册 移动到另一个数据库 我想将数据移动到名为archived的表中 这是我尝试过的 从谷歌找到 result mysql query Insert Into archived se
  • LINQ to SQL 是否使用 ActiveRecord 模式?

    我刚刚研究了ActiveRecord模式 并基于此 http en wikipedia org wiki Active record pattern 看来 Linq 2 Sql 或多或少实现了这一点 我错了吗 或者需要更改什么才能使其符合
  • OpenGL 中对 R8G8B8 纹理的 NPOT 支持

    我使用 glew 和 glut 创建了一个示例应用程序 它读取 dds 文件并显示它 我手动读取dds文件 R8G8B8中的NPOT 886 x 317 文件 并创建数据指针 unsigned char 然后我使用准备纹理 void pre
  • RxJS 订阅未触发

    目前正在学习 RxJS 我有一个整数selectedCourseIndex在我想要订阅一个单独的组件的服务中 课程部分 service ts private selectedCourseIndex number 1 this number