我想创建一个全局组件来处理页面上的警报框和通知。触发器将在其他同级组件中
<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中实现它?