我正在使用lua.vm.js javascript library来获取一些lua代码以在javascript中执行。 代码工作正常(它是一个非常简单的lua示例)但我无法将Lua中声明的任何变量放入我的javascript上下文中。
项目中的REPL允许我测试以下Lua代码:
local key = { k1 = value}
local data = {
[key] = "something",
a = { b = 3 },
}
local v1 = data [key]
local v2 = data.a.b
print(v1)
print(v2)
在输出窗口中,我可以看到v1和v2正在打印并且具有正确的值,但是我无法找到一种方法将数据中的值分配到例如js变量中。
更简单一点:在执行Lua代码后,将键和数据中的值转换为javascript变量。
这可能吗?
我正在阅读来自lua.vm.js的代码,但我找不到引导我朝正确的方向发展。
提前致谢!
答案 0 :(得分:0)
来自https://github.com/kripken/lua.vm.js/issues/18
的X-posted使用我的分支/分叉;可以在https://daurnimator.github.io/lua.vm.js/repl.html
找到repl当Lua变量暴露给javascript时;它作为一个功能对象公开;使用方法invoke / get / set / etc.见https://github.com/daurnimator/lua.vm.js/blob/master/lua.js#L523
使用你的例子;以某种方式将对象暴露给javascript。例如在卢安:
window.mydata = data
window.mykey = key
然后在javascript:
v1 = window.mydata.get(window.mykey)
v2 = window.mydata.get("a").get("b")
console.log(v1)
console.log(v2)