Angular2 ngOnDestroy,发出事件

标签 angular ondestroy

是否可以在 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 => { ... });

希望对你有帮助, 蒂埃里

关于Angular2 ngOnDestroy,发出事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34743069/

相关文章:

Android:从 onDestroy() 恢复后,onclicklistener 没有响应

android - view - 寻找类似 on(View)Destroyed 的事件

java - Android 对所有 Activity 使用独特的 onDestroy

java - 为什么 Angular HttpClient 响应为空?

如果不支持浏览器,Angular 2 如何显示警告页面

Angular 4 组件生命周期

android - Activity OnDestroy 从未调用过?

android - 如何通过使用 Robotium 调用 onDestroy 来自动测试 onResume 行为?

django - 使用 django rest 框架制作 SSO

javascript - 基于 Angular Reactive Forms 验证更改输入元素 CSS