Ionic Events 替换为 Angular Observables

2024-01-11

我了解 Ionic 事件将在下一个版本中被弃用。目前,我使用事件从子组件执行父页面中的函数。这是一个例子:

在我的主页中,它订阅了要刷新的事件:

constructor(){
  this.eventFormRefresh = (obj) => {
    this.fetch(obj.isReset);
  };
  this.events.subscribe('form:refresh', this.eventFormRefresh);
}

ngOnDestroy(): void {
  this.events.unsubscribe('form:refresh', this.eventFormRefresh);
}

在子组件中,我通过发布“form:refresh”事件来激活刷新,如下所示:

this.events.publish('form:refresh');

我将如何使用角度可观察量来完成上述操作?


您可以使用rxjs 主题 https://rxjs-dev.firebaseapp.com/guide/subject为此,首先创建一个公共服务,例如。

@Injectable()
export class EventService{
  private formRefreshAnnouncedSource = new Subject();
  formRefreshSource$ = this.formRefreshAnnouncedSource.asObservable();

  publishFormRefresh(){
    this.formRefreshAnnouncedSource.next()
  }

}

然后发布像

this.eventService.publishFormRefresh();

并订阅某个组件

this.subscription = this.eventService.formRefreshSource$.subscribe(data => {
  //do something here
});

and 取消订阅 https://stackoverflow.com/questions/34442693/how-to-cancel-a-subscription-in-angular2on ngOnDestroy

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

Ionic Events 替换为 Angular Observables 的相关文章

随机推荐

  • event.preventDefault() 或 return false 在 IE9 中不起作用

    我试图让以下代码在所有版本的 IE 中工作 就像它在其他浏览器中工作一样 a href class specificClass Click Me a Javascript specificClass click function e e p
  • Visual Studio 64 位?

    有 64 位 Visual Studio 吗 为什么不 由于多种原因 No 为何在此解释MSDN 帖子 https web archive org web 20160309232651 http blogs msdn com b ricom
  • 覆盖 WPF 中的静态资源

    我想覆盖StaticResource这是在我自己的资源字典中的不同程序集的资源字典中配置的 我尝试使用相同的密钥配置新资源 但没有成功 实际加载的资源来自所提到的程序集的资源字典 出于演示目的 我将资源称为 MyResource MyRes
  • FactoryFinder 性能/缓存不良

    我有一个相当大的 java ee 应用程序 它有一个巨大的类路径 可以进行大量的 xml 处理 目前 我正在尝试加快一些功能的速度 并通过采样分析器找到缓慢的代码路径 我注意到的一件事是 特别是我们的代码中 我们有像这样的调用的部分Tran
  • 使用管道而不提供第一个参数

    Is the gt 管道运算符总是将左侧 LHS 提供给右侧 RHS 的第一个参数 即使在 RHS 调用中再次指定第一个参数 假设我想指定要使用的变量cor library magrittr iris gt cor x Sepal Leng
  • Tensorflow Dataset API:带有 parquet 文件的输入管道

    我正在尝试使用 Dataset API 设计输入管道 我正在处理镶木地板文件 将它们添加到我的管道中的好方法是什么 我们已经发布了万能风暴 https github com uber petastorm 一个开源库 允许您通过 Tensor
  • 提示使用自定义目录查找 .cmake 文件

    在 CMake 中 有没有办法制作内置的 Find 脚本来优先考虑我们指定的自定义目录 因为特别是在 Windows 中 模块查找脚本通常无法检测到模块 例如 Visual Studio 目录 因此我通常必须手动设置外部库的路径 这非常累人
  • 颤振回调函数

    我有一个数量需要在父小部件中更新 按子小部件中的 或 图标时需要更新数量 我将回调函数传递给了子无状态小部件 但它不起作用 相反 我收到一条错误消息 指出在构建期间调用了 setstate 或 markneedsbuild 这是父小部件 c
  • 如何在第一列中应用文本左对齐,在其他列中应用文本右对齐

    我有一张桌子要设计 我该如何申请text align left 仅适用于第一列和text align right 对于其他列 这是我的表示例 http jsfiddle net gianlucaguarini hAv7P http jsfi
  • 在 Javascript 中克隆文件输入元素

    我有一个文件输入元素 需要在用户浏览并选择要上传的文件后进行克隆 我开始使用 obj cloneNode 一切正常 直到我尝试在 IE 中使用它 此后我尝试使用 jQuery 的克隆方法 如下所示 var tmp jQuery catego
  • Multipart._final 中的表单意外结束

    我有多个输入 当所有图像输入字段都填满时 上传工作正常 但如果其中任何一个为空 它会在我的服务器端引发错误 Unexpected end of form at mutipart 这是客户端 const handelSubmit e gt e
  • 如何使用 Unity 依赖注入 Web API 实现策略/外观模式

    如何告诉Unity WebApi依赖注入框架 在正确的控制器中注入正确的类 DI 项目容器 public class UnityContainerConfig private static IUnityContainer unityCont
  • PowerShell 3.0 中 [ordered] 的正确名称是什么?

    在 PowerShell 中 您可以使用方括号指定类型 如下所示 PS C Users zippy gt int IsPublic IsSerial Name BaseType True True Int32 System ValueTyp
  • 如何发送ctrl+z

    How do I convert ctrl z to a string 我将此作为 AT 命令发送到该计算机的连接设备 Basically I just to put some chars in a string and ctrl z in
  • GridView 丢失了对非索引位置中的项目的跟踪,并且许多项目不再显示

    我正在使用 UWP 应用程序FileInformationFactory检索文件对象的虚拟化向量 该向量被转换为FileInformation并显示在GridView 我想查询插入笔记本电脑的 SD 卡上的文件夹并比较该文件夹的虚拟化情况G
  • 恢复到特定提交而不丢失历史记录

    我知道这类问题有很多重复项 但我想打开一个新问题 因为我没有在所有其他问题中找到按照我想要的方式执行此操作的最佳方法的解释 我知道我可以通过执行以下操作来恢复并保留历史记录 git reset soft c14809fa 我想恢复devel
  • Angular2:如何在一段时间后淡出显示在Click上的box-msg

    可能是一个愚蠢的问题 但我是新手angular并且仍在学习 单击按钮时显示一条成功消息 我需要在几秒钟后淡出该消息 div class alert alert success box msg strong Link Generated st
  • 标签文本更新期间 UIImageView 位置重置

    这里发生的问题真的很奇怪 在 iOS 8 中使用 XCode 我有一个简单的 UIImageView 当我单击时它会在屏幕上移动 没问题 效果很好 我只有一个简单的方法来更新特定标签 基于一个名为 StrikesLeft 的 int 这是我
  • 添加到 UIWindow 的 UIView 中的方向

    我有一个 UIView 它应该覆盖整个设备 UIWindow 以支持我正在使用核心动画执行的图像放大 缩小效果 其中用户点击 UITableViewCell 上的按钮 然后我缩放关联的图像 缩放执行完美 我无法弄清楚为什么即使设备处于横向状
  • Ionic Events 替换为 Angular Observables

    我了解 Ionic 事件将在下一个版本中被弃用 目前 我使用事件从子组件执行父页面中的函数 这是一个例子 在我的主页中 它订阅了要刷新的事件 constructor this eventFormRefresh obj gt this fet