我找不到使用 scala-js 创建自定义事件的方法。例如,使用 js,您可以创建如下所示的自定义事件(摘自此处):
var event = new CustomEvent('build', { 'detail': elem.dataset.time });
但是,没有构造函数CustomerEvent
or Event
在接受参数的 scala-js 中。此外,还可以进行子类化,例如:
class DrawEvent extends Event {
override def `type` = "draw"
}
导致
未捕获的类型错误:未定义不是函数
当尝试构建via时new DrawEvent()
有任何想法吗?
要在 ScalaJs 中实例化 javascript 类,您必须使用 js.Dynamic.newInstance:
这应该适用于您的用例:
val event = js.Dynamic.newInstance(js.Dynamic.global.CustomEvent)("build", js.Dynamic.literal(detail = elem.dataset.time)).asInstanceOf[js.dom.CustomEvent]
备注部分(一直在底部)提供了更多信息:http://www.scala-js.org/doc/calling-javascript.html
这是使用一些导入来缩短它的相同解决方案
import js.Dynamic.{ global => g, newInstance => jsnew, literal => lit }
val event = jsnew(g.CustomEvent)("build", lit(detail = elem.dataset.time)).asInstanceOf[js.dom.CustomEvent]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)