我一直在寻找在dart-angle应用程序中的组件之间发送消息的最佳方法是什么,我感到很困惑。我发现在旧版本中,我将使用ScopeAware,如以下问题所示:Angular Dart component events,但是现在将其替换为Streams。
在我看来,ScopeAware创建了一种“全局”方式来管理不直接相关的组件之间的事件,对吗?使用流,如何创建此上下文?
我有这段代码,可以处理“全局”事件:
class PostEvent {
final StreamController<ComponentEvent> _onEventStream = new StreamController.broadcast();
Stream<ComponentEvent> onEventStream = null;
static final PostEvent _singleton = new PostEvent._internal();
factory PostEvent() {
return _singleton;
}
PostEvent._internal() {
onEventStream = _onEventStream.stream;
}
onEvent(ComponentEvent event) {
_onEventStream.add(event);
}
}
在我的项目中,我具有以下组件结构:
Home
-> Products
-> Product Item
-> Header
-> Cart Products Count
添加或删除一种产品时,应通知“购物车计数”。在这种情况下,我的代码是个好主意吗?
谢谢!
最佳答案
使用流是一个好主意。
现在,使该类成为服务,在根注入(inject)器处提供它,然后将其注入(inject)到您希望获得有关更新的通知并在此订阅的位置。
有多个订阅者,您需要一个多播流。