我希望 Marko.js 组件发出一个事件和一个值,然后我希望包含的组件侦听该事件并访问该值。
我有一个简单的按钮组件,如下所示:
class {
doSomething() {
this.emit('buttonClicked', {someValue:'10'});
}
}
<button.example-button on-click('doSomething')>Click me!</button>
包含组件然后看起来像这样......
class {
onButtonClicked(data){
console.log("I heard event:" + data.someValue);
}
}
<div class="button-manager">
<my-button on-buttonClicked('onButtonClicked') />
</div>
这有效并使用该值正确记录事件。但是我有点困惑,因为我希望容器中的语法引用事件侦听器中传递的参数......就像这样......
<div class="button-manager">
<my-button on-buttonClicked('onButtonClicked', data) />
</div>
但是,这会追踪出一个空对象。如果我将一个字符串作为参数,该字符串被记录并覆盖从发射器传递的原始数据参数。
这是预期的行为吗?