Как установить атрибут элемента Dom
Я создал элемент td с помощью вызова, такого как:
let td = Dom_html.createTd doc in
Теперь я хотел бы установить атрибут для этого объекта. Я попробовал это:
td#setAttribute (Js.string "colspan") (Js.string "4")
Но я получаю ошибку:
Ошибка: это выражение имеет тип Dom_html.tableCellElement Js.t
У него нет метода setAttribute
1 ответ
Простая черта #
используется для доступа к методу объекта OCaml.
Js_of_ocaml имеет специальный синтаксис (##
) иметь дело с объектом Javascript. см. http://ocsigen.org/js_of_ocaml/2.4/manual/library
Чтобы установить атрибут элемента dom:
td##setAttribute(Js.string "key", Js.string "val")
В вашем случае вам лучше использовать:
td##colSpan <- 4
Двойная черта ##
переведет доступ к полю JavaScript. Предыдущее утверждение переводится как td.colSpan = 4
,
Параметр типа 'a
в 'a Js.t
является фантомным типом, используемым средством проверки типов для проверки доступа к полю JavaScript. см. http://ocsigen.org/js_of_ocaml/2.4/api/Dom_html.tableCellElement-c в вашем случае.