gpt4 book ai didi

angular - 如何在 Angular 中创建发布者/订阅者模型?

转载 作者:太空狗 更新时间:2023-10-29 17:37:27 24 4
gpt4 key购买 nike

我一直在玩 Angular,并一直在尝试找到一种在整个组件树中使用发布/订阅机制的方法。

EventEmitter 似乎只发出一个事件,该事件可以订阅到更高一级——但不能更高。同样,它只在树上向上发出事件,但现在向下发出。

plunker

相关代码在这里:

class App {
onAncestor($event) {
console.log('in ancestor, decendent clicked',$event);
}
}

...
class Entities {
....
onParent($event) {
console.log('in entities parent, child clicked',$event);
}

onGrandParent($event) {
console.log('in grand parent, grandschild clicked',$event);
}

仅调用 onParent,从不调用 onGrandparent 或 onAncestor。同样,它也不会向下发布。

最佳答案

Angular 2 附带了一个名为 RxJs 的可观察对象库,因此可用于创建我们可以订阅和提交事件的服务。

然后我们使用依赖注入(inject)机制将该服务注入(inject)到我们需要它的应用程序的任何地方。

因此不再需要广播/发射事件机制,因为它已被更强大的可观察机制所取代,该机制内置在框架中的任何地方:EventEmitter 是一种可观察的形式值是可观察的,http 可以返回可观察的等等。

查看此 repository有关如何使用 RxJs 构建服务以进行发布/订阅的示例。

关于angular - 如何在 Angular 中创建发布者/订阅者模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32711093/

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