我一直在寻找在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
添加或删除一种产品时,应通知“购物车计数”。在这种情况下,我的代码是个好主意吗?
谢谢!
答案 0 :(得分:2)
使用流是一个好主意。 现在,将该类作为服务,在根注入器处提供它,然后将其注入到您希望获得有关更新的通知并在此订阅的位置。
有多个订阅者需要多播流。