2017-11-12 10 views
0

내가 scala.s에 JS 라이브러리 문서에서이 코드를 변환 할 노력하고있어에서 : 나는 시도액세스 JS이 Scala.js

$('#myTable').on('click', 'tbody td', function() { 
    editor.inline(this, { 
     submitOnBlur: true 
    }); 
}); 

코드 :

$("#table").on("click", ".editable", (thiz: js.Dynamic) => { 
    editor.inline(thiz, JC(
    submitOnBlur = true 
)) 
}) 

는 그러나 그것은 나에게 오류를 제공 :

Cannot read property 'contents' of undefined at f.inline

+0

jQuery에는 어떤 facade 라이브러리를 사용합니까? 즉, 빌드/소스의 어떤 의존성이'$'로 시작 하는가? – sjrd

+0

@sjrd "be.doeraene"% "scalajs-jquery_sjs0.6_2.12"% "0.9.2"' – user2975535

답변

1

당신이 쓴 콜백 함수, 즉,

(thiz: js.Dynamic) => { 
    editor.inline(thiz, JC(
    submitOnBlur = true 
)) 
} 

this을 매개 변수로받는 함수 대신 1 개의 매개 변수 (즉, thiz이라고 함)의 함수입니다.

((thiz: js.Dynamic) => { 
    editor.inline(thiz, JC(
    submitOnBlur = true 
)) 
}): js.ThisFunction 

이를 : 다른 말로하면, 그것은 JS에서 다음에 해당 다음과 같이

function(thiz) { 
    editor.inline(thiz, JC(...)) 
} 

this에 대한 액세스를 얻으려면, 당신은 js.ThisFunction로 콜백 함수를 강제 할 필요가 스칼라 람다 (이 경우에는 유일한 것)의 첫 번째 인수를 취하여 JavaScript의 값인 this에 첨부합니다. 이는 원하는 것입니다.