1

Tyxml の構文を使用して、SVG rect を作成するとします。

let rect_elt = <:svg< <rect></rect> >>

js_of_ocaml の API を使用して DOM 内に挿入するにはどうすればよいですか?

私はそのようなことをしたい:

let _ =
  let rect_elt = <:svg< <rect></rect> >> in
  let svg_elt = Dom_svg.getElementById "graph-svg" in
  svg_elt##appendChild(rect_elt)

しかし、適切な型変換を行う方法がわかりません。

4

1 に答える 1

2

わかりましたので、(または Dom_svg から) に変換するには、Tyxml_cast.MakeTo(または MakeOf) のインスタンスを作成する必要があります。

module To_dom = Tyxml_cast.MakeTo(struct
  type 'a elt = 'a Tyxml_js.Svg.elt
  let elt = Tyxml_js.Svg.toelt
end)

module Of_dom = Tyxml_cast.MakeOf(struct
  type 'a elt = 'a Tyxml_js.Svg.elt
  let elt = Tyxml_js.Svg.tot
end)

次のように使用します。

let _ =
  let svg_elt = Dom_svg.getElementById "some-svg" in
  let rect_node = <:svg< <rect></rect> >>
    |> To_dom.of_node in
  svg_elt##appendChild(rect_node)
于 2016-03-10T13:40:24.440 に答える