我遇到了Yabble的问题,我无法解决。
在我的主html中,我使用yabble加载所有js
<script>
require.setModuleRoot('./javascript/');
require.run('main')
</script>
我有一堆js(gamejs相关)。在一个文件中,我有函数changeSimulationSettings()。稍后在同一页面中,我想获取用户输入并访问gamejs对象并更改其状态。我遇到的问题是我无法调用changeSimulationSettings。它没有在当前上下文中定义。 Yabble做了很多魔术我无法找到它的定义或访问方式。
<div>
<button type="button" onclick="updateSettings()">Update-Settings</button>
</div>
<script type="text/javascript">
function updateSettings(){
// access function defined in a js loaded by yabble
i.e. changeSimulationSettings()
}
</script>
所有的js肯定都被加载了,因为我有从不同文件中相互调用的函数。但是,我无法从入口网页中嵌入的js中调用任何内容。
任何帮助都会受到赞赏,因为我已经被困在这个小时数小时。
谢谢,
答案 0 :(得分:0)
模块中定义的代码是隔离的,不可全局使用。
我会反过来做:从模块中附加一个事件处理程序。不要使用“onclick =”而是使用changeSimuSettings
可用的模块,执行类似的操作(例如使用jquery或plain DOM):
$('button').click(changeSimulationSettings)
这更清洁,你不会泄漏全局变量。如果您坚持按照自己的方式进行操作,则可以将changeSimulationSettings
导出到全局并使用您已有的代码。像这样(我不推荐):
window.changeSimulationSettings = function() {...