我想从一些文本框中获取数据,我在scala js的网页上有一个表格。我尝试过使用HTML'`onclick事件,如:
<button id="submit" type="button" onclick="TutorialApp().fun()">Submit</button>
我在TutorialApp对象中创建了一个函数,如:
object TutorialApp extends JSApp {
@JSExport
def main(): Unit = {
.....
}
def fun():Unit = {
println("Button is clicked")
}
但它显示错误,TutorialApp()。fun()不是一个函数。我的代码出了什么问题?
答案 0 :(得分:4)
作为替代方案,您可能希望在代码中注册onclick处理程序:
import org.scalajs.dom
def main(): Unit = {
dom.document.getElementById("submit").addEventListener("click", fun _)
}
优点是您不需要导出fun
并且您获得编译时名称安全性(即,如果您重命名fun
,编译器将告诉您是否忘记将其重命名为某处)。
答案 1 :(得分:2)
它通过在fun()之前添加@JSExport来工作。我没有注意到这一点。