作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我一直在玩 Angular,并一直在尝试找到一种在整个组件树中使用发布/订阅机制的方法。
EventEmitter 似乎只发出一个事件,该事件可以订阅到更高一级——但不能更高。同样,它只在树上向上发出事件,但现在向下发出。
相关代码在这里:
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/
我是一名优秀的程序员,十分优秀!