如何通过 Web 程序集访问 Go 中的 JS 对象

我正在使用构建 wasm 文件以在我的浏览器上运行,我能够将简单的整数字符串值传递给方法,但不能传递复杂的对象、键值对或数组


这是我的方法


func Transform(jsV js.Value, inputs []js.Value) interface{} {

    message := inputs[0].String()

    fmt.Println(inputs)  // How to access objects here 

    h := js.Global().Get("document").Call("getElementById", "message")

    h.Set("textContent", message)

    return nil

}


func init() {

    fmt.Println("Hello, WebAssembly!")

    c = make(chan bool)

}


func main() {

    js.Global().Set("Transform", js.FuncOf(Transform))

    println("Done.. done.. done...")

    <-c

}

当我传递对象时{name:"Something"},它只打印对象,我在文档中搜索但找不到任何链接


天涯尽头无女友
浏览 65回答 1
1回答

梵蒂冈之花

如果你打电话给Transform:globalThis.Transform({name:"Something"})在这种情况下,inputs[0]就是对象。为了获得name你应该使用的属性Get:message&nbsp;:=&nbsp;inputs[0].Get("name").String()如果array你有.Index()和 对象(如上所示),你有.Get().
打开App,查看更多内容
随时随地看视频慕课网APP