使用lua.vm.js从Javascript中读取Lua变量

时间:2014-05-27 09:34:44

标签: javascript lua

我正在使用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的代码,但我找不到引导我朝正确的方向发展。

提前致谢!

1 个答案:

答案 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)