我正在尝试将这段代码从 js 库文档转换为 scala.s:
$('#myTable').on( 'click', 'tbody td', function () {
editor.inline( this, {
submitOnBlur: true
} );
} );
我尝试过的代码:
$("#table").on("click", ".editable", (thiz: js.Dynamic) => {
editor.inline(thiz, JC(
submitOnBlur = true
))
})
但它给了我错误:
无法读取 f.inline 中未定义的属性"内容">
你写的回调函数,即
(thiz: js.Dynamic) => {
editor.inline(thiz, JC(
submitOnBlur = true
))
}
是 1 个参数的函数(恰好称为 thiz
(,而不是接收this
作为参数的函数。换句话说,它等效于 JS中的以下内容:
function(thiz) {
editor.inline(thiz, JC(...))
}
要访问this
,你需要强制你的回调函数是一个js.ThisFunction
,如下所示:
((thiz: js.Dynamic) => {
editor.inline(thiz, JC(
submitOnBlur = true
))
}): js.ThisFunction
这将采用 Scala lambda 的第一个参数(在本例中是唯一一个(并将其附加到 JavaScript 的this
值,这就是您想要的。