包装一个接收 JS 对象的 OCaml 函数(记录)
Wrap an OCaml function that receives a JS object (record)
我想在 OCaml 中写一个非常简单的函数,然后用 js_of_ocaml
把它包装成一个 JS 函数 jsGet
,这样 jsGet
就可以接受一个 JS 对象(或者记录)作为输入。
我尝试了以下代码:
\ in Home.js
function testJsGet () {
var input = {field_1: 5, field_2: 6};
var output = jsGet(input);
document.getElementById("result").value += output;
}
在wrap.ml
中:
type t =
< field_1: int Js.prop;
field_2: int Js.prop
> Js.t
let () =
Js.Unsafe.global##.jsGet := Js.wrap_callback
(fun (r:t) -> r##.field_1);
wrap.ml
编译得很好,但是,运行 Home.js
returns undefined
作为输出。
有谁知道如何纠正这个问题?
删除下划线。请参阅 http://ocsigen.org/js_of_ocaml/2.8/manual/bindings
处的方法名称和下划线
我想在 OCaml 中写一个非常简单的函数,然后用 js_of_ocaml
把它包装成一个 JS 函数 jsGet
,这样 jsGet
就可以接受一个 JS 对象(或者记录)作为输入。
我尝试了以下代码:
\ in Home.js
function testJsGet () {
var input = {field_1: 5, field_2: 6};
var output = jsGet(input);
document.getElementById("result").value += output;
}
在wrap.ml
中:
type t =
< field_1: int Js.prop;
field_2: int Js.prop
> Js.t
let () =
Js.Unsafe.global##.jsGet := Js.wrap_callback
(fun (r:t) -> r##.field_1);
wrap.ml
编译得很好,但是,运行 Home.js
returns undefined
作为输出。
有谁知道如何纠正这个问题?
删除下划线。请参阅 http://ocsigen.org/js_of_ocaml/2.8/manual/bindings
处的方法名称和下划线