gpt4 book ai didi

javascript - 我可以在常规 JS 中监听 AngularJS 中抛出的事件吗(在 Angular 之外?)

转载 作者:行者123 更新时间:2023-11-28 05:41:49 25 4
gpt4 key购买 nike

我可以在常规 JS 中监听 AngularJS 中抛出的事件吗(Angular 之外?)我有一个用例,在 Angular 2 中使用 (rxjs) 抛出一个事件。我可以在纯 JS 外部订阅该事件吗?

这是我的一些伪代码

import {Observable} from 'rxjs/Rx';
...
@Output() responsesEvt = new EventEmitter();
...
this.responsesEvt.emit(this.form.value);

我想订阅在 Angular 2 之外触发的responseEvt。

最佳答案

@Output()EventEmitter 不应该用于除了像 (responsesEvt)="doSomething($event) 这样的 Angular 事件绑定(bind)之外的任何东西“。这仅适用于从直接子级到直接父级(不会冒泡)。

否则使用ObservableSubject

如果你想通知 Angular 之外的 JS,只需使用 DOM 事件,例如

constructor(private elRef:ElementRef, private renderer:Renderer) {}

someMethod() {
this.renderer.invokeElementMethod(this.elRef.nativeElement,
'dispatchEvent',
[new CustomEvent('responses-evt', { bubbles: true })]);

另请参阅https://stackoverflow.com/a/37875153/217408

关于javascript - 我可以在常规 JS 中监听 AngularJS 中抛出的事件吗(在 Angular 之外?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38858142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com