Angular2 ngOnDestroy,发出事件

2024-04-04

是否可以在 ngOnDestroy 上发出自定义事件?我尝试过,但似乎不起作用...我基本上需要知道指令何时从 UI 中删除。

@Output() rowInit = new EventEmitter();
@Output() rowDestroy = new EventEmitter();

ngAfterViewInit() {

    this.rowInit.emit(this);
}

ngOnDestroy() {
    console.log("I get called, but not emit :(, ngAfterViewInit works :)");
    this.rowDestroy.emit(this);
}

我认为你可以使用EventEmitter在服务中而不是在组件本身中定义。这样,您的组件将利用服务的此属性来发出事件。

import {EventEmitter} from 'angular2/core';

export class NotificationService {
  onDestroyEvent: EventEmitter<string> = new EventEmitter();
  constructor() {}
}

export class MyComponent implements OnDestroy {
  constructor(service:NotificationService) {
    this.service = service;
  }

  ngOnDestroy() {
    this.service.onDestroyEvent.emit('component destroyed');
  }
}

其他元素/组件可以订阅此 EventEmitter 以获得通知:

this.service.onDestroyEvent.subscribe(data => { ... });

希望对你有帮助, 蒂埃里

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

Angular2 ngOnDestroy,发出事件 的相关文章

随机推荐

  • Nuxt 3 中的深色模式切换器无法与官方 @nuxtjs/color-mode 配合使用

    我想使用 tailwind 和推荐的 nuxtjs color mdoe 模块在我的 Nuxt 应用程序上实现深色模式 测试顺风的黑暗 类运行良好并且按预期工作 但是我无法使按钮切换器以编程方式设置颜色模式 我在 devDeps 中安装了
  • 将 props 传递给包装在 withRouter() 函数中的 React 组件

    我正在使用 React Router v4 在我的 React 应用程序中导航 下面是包裹在withRouter 函数使其能够在单击时更改路线 const LogoName withRouter history props gt h1 gt
  • 如何使用perl脚本删除重复行

    如何删除重复行 我当前的代码 use strict use warnings my input input txt my output output txt my seen open OP gt output or die open IP
  • SSRS - 条件文本格式(使用 Switch 的表达式)

    我将首先说明这些表达式在报告中确实有效 问题是他们没有一起工作 我目前有一个基于两列值格式化的列标题 根据 Column1 的值使用斜体和下划线 基于 Column2 值的粗体和特定颜色 我通过在文本属性中使用 Switch 表达式来完成此
  • 在 Swift 中实例化并呈现 viewController

    Issue 我开始看Swift Programming Language 不知怎的 我无法正确输入 a 的初始化UIViewController从具体的UIStoryboard In Objective C我简单地写 UIStoryboar
  • 如何使用 FFmpeg 从图像创建视频? [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的
  • Rails 应用程序在服务器上速度很快,但从另一台机器访问时速度很慢

    我有一个 Rails 应用程序托管在服务器计算机上 运行 Webrick 当我登录到这台计算机并访问该应用程序 通过 localhost 3000 时 该应用程序运行顺利 但是 当我尝试从另一台计算机 通过主机名 3000 访问该应用程序时
  • 删除一行中重复的相同字符

    我正在尝试创建一种方法 该方法可以从字符串中删除所有重复项 或者根据参数仅在一行中保留相同的 2 个字符 例如 helllllllo gt helo or helllllllo gt hello 这保留了双字母 目前我通过执行以下操作删除重
  • Django 使用 sqlite3 设置?

    我正在尝试按照 django 网站上的演练进行操作 我下载了 sqlite 并将其保存在C Windows System32文件夹 当我编辑settings py文件我该放什么Name场地 我必须建立数据库吗 django 文献说 API
  • 使用 postgres 窗口函数重复行

    postgres 文档 http www postgresql org docs 9 1 static tutorial window html http www postgresql org docs 9 1 static tutoria
  • Argparse:来自文件的默认值

    我有一个 Python 脚本 它需要很多参数 我目前使用的是configuration ini文件 使用读取configparser 但希望允许用户使用命令行覆盖特定参数 如果我只有两个参数 我会使用类似的东西 if not arg1 ar
  • Java 8中basic和url base64编码的区别

    Java 8Base64 http docs oracle com javase 8 docs api java util Base64 html库有两种可用于 URI 构建的变体 基本 变体和 URL 和文件名安全 变体 该文档指出RFC
  • 外部调用的 Lambda 函数超时

    我有一个 Lambda 函数 需要从中进行外部 API 调用 我已将 Lambda 函数添 加到一个安全组 一个 VPC 和 2 个子网 它为我提供了以下文本 当您启用 VPC 时 您的 Lambda 函数将失去默认互联网 使用权 如果您需
  • 如何将字符串转换为 android.net.Uri

    问题 我发现java net URI有一个 create String uri 选项 但是android net uri才不是 进一步来说 我正在尝试获取 RingtoneManager 的输出RingtonePicker并将其设置为默认铃
  • 导入数据和事件溯源

    我目前正在开发一个整体系统 我希望将其引入现代并结合 DDD 和 CQRS 我收到了重新编写解决方案的导入机制的请求 并认为这可能是开始此重新架构过程的好机会 目前流程是 用户上传 CSV 系统解析 CSV 并在屏幕上显示每一行 对每一行以
  • AsyncSupportListenerAdapter primefaces 异常

    我是 jsf 的新人 我正在尝试使用 inf primefaces 做一些示例 当我尝试运行这个示例时 http www primefaces org showcase labs push chat jsf http www primefa
  • Angular 4 HttpClient 查询参数

    我一直在寻找一种将查询参数传递到 API 调用中的方法HttpClientModule s HttpClient并尚未找到解决方案 与旧的Http模块你会写这样的东西 getNamespaceLogs logNamespace Setup
  • 无法读取 null 属性“样式” - Google 登录按钮

    我正在尝试为我的网站实施 Google 登录 登录按钮正确显示 并且最初可以很好地进行登录 当我在使用网站后注销并尝试移至登录页面 我使用的是 React 所以都是一页 时 就会出现问题 我使用完全相同的函数来呈现登录页面 但它给了我一个
  • Furo Sphinx 主题在 API 文档中保留过多的大写字母

    我面临着这个问题中讨论的同样的问题 Furo Sphinx 主题在 API 文档中大写过多 https stackoverflow com questions 69873561 furo sphinx theme uppercases to
  • Angular2 ngOnDestroy,发出事件

    是否可以在 ngOnDestroy 上发出自定义事件 我尝试过 但似乎不起作用 我基本上需要知道指令何时从 UI 中删除 Output rowInit new EventEmitter Output rowDestroy new Event