Yabble - 访问yabble加载的函数

时间:2012-12-26 07:04:18

标签: javascript

我遇到了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中调用任何内容。

任何帮助都会受到赞赏,因为我已经被困在这个小时数小时。

谢谢,

1 个答案:

答案 0 :(得分:0)

模块中定义的代码是隔离的,不可全局使用。

我会反过来做:从模块中附加一个事件处理程序。不要使用“onclick =”而是使用changeSimuSettings可用的模块,执行类似的操作(例如使用jquery或plain DOM):

$('button').click(changeSimulationSettings)

这更清洁,你不会泄漏全局变量。如果您坚持按照自己的方式进行操作,则可以将changeSimulationSettings导出到全局并使用您已有的代码。像这样(我不推荐):

window.changeSimulationSettings = function() {...