我正在尝试编写用于基本DOM操作的Gleam JavaScript绑定。我想用微光实现以下JavaScript功能:
const div = document.createElement('div');
div.classList.add('className');我写此信的外部定义如下:
pub external type Document
pub external type HTMLElement
pub external fn create_elm(String) -> HTMLElement =
"" "document.createElement"
// HOW TO WRITE FOLLOWING EXTERNAL DEFINITION
pub external fn add_class(HTMLElement, String) -> Nil =
"" "$0.classList.add"因此,对于add_class函数,我希望gleam编译到JS,这样第一个参数HTMLElement被用作对象,第二个参数String被传递给HTMLElement的某些方法。如何做到这一点?
我找不到这方面的任何文件在格莱姆网站上。我认为类似于寓言允许写外部绑定的方式是可能的。然而,这是行不通的。
发布于 2022-07-01 21:29:20
Gleam没有任何使用OOP JavaScript的功能,所以在本例中,我将使用一些JavaScript胶水代码。
// in src/app.gleam
pub external type Document
pub external type HTMLElement
pub external fn create_elm(String) -> HTMLElement =
"" "document.createElement"
pub external fn add_class(HTMLElement, String) -> Nil =
"./app_ffi.mjs" "addClass"// in src/app_ffi.mjs
export function(element, string) {
element.classList.add(string)
}https://stackoverflow.com/questions/71634632
复制相似问题