Как создать событие, видимое для другого одноуровневого компонента в marko.js? - PullRequest
0 голосов
/ 01 октября 2018

Я хотел бы создать глобальный компонент, который будет обрабатывать окна предупреждений и уведомлений на моей странице.Триггер будет в других родственных компонентах

<body>
  <alerts/>
  <component1 />
  <component2/>
</body>

Код для alerts.marko следующий

class {
  onMount() {
    this.subscribeTo(document).on('alert', this.handleAlert)
  }

  handleAlert() {
    // do some animations, make it visible 
  }
}

Код для моих родственных компонентов component1.marko

class {
  doSomething() {
    // do some async operation
    this.emit('alert', alertData);
  }
}

Проблема в том, что эта идея не работает, она работает нормально, когда component1 является дочерним элементом компонента alerts и использует структуру on-[event]().

Как я могу реализовать это в marko.js?

...