Какой лучший способ связи между компонентами angular-dart? - PullRequest
0 голосов
/ 16 ноября 2018

Я искал, как лучше всего отправлять сообщения между компонентами в дартс-угловых приложениях, и я был немного озадачен.Я обнаружил, что в старых версиях я использовал ScopeAware, как показано в этом вопросе: События компонента Angular Dart , но теперь он был заменен на 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

Когда один продукт добавляется или удаляется, необходимо уведомить «Количество продуктов в корзине».Мой код, в данном случае, хорошая идея?

Спасибо!

1 Ответ

0 голосов
/ 16 ноября 2018

Использование потока - хорошая идея.Теперь сделайте этот класс сервисом, предоставьте его в корневой инжектор и внедрите его там, где вы хотите получать уведомления об обновлениях и подписываться там.

Там есть несколько подписчиков, которым нужен многоадресный поток.

...