javascript - RequireJS 从模块返回一个函数以在模板中使用

标签 javascript requirejs

我想在模块中创建一个函数,该函数可以处理各种依赖项,但在模板中调用,到目前为止我只收到函数未定义的错误。我哪里出错了,还是这根本不可能?

helper.js 模块

define(['aDependency'],function(){

    var sayHi = function(){
        console.log('Hi');
};
return{
    sayHi: sayHi
}

我的主文件中需要此模块

requirejs(['lib/helper']);

我想在我的模板中使用该函数;

<button data-remodal-action="confirm" onClick="sayHi()"/>

但是我得到了一个 undefinde 函数。

非常感谢任何帮助。

干杯

最佳答案

您似乎正在尝试调用 sayHi函数就像在全局范围内一样,但这并不是因为 requirejs 模块具有隔离范围

像这样使用它 - <button data-remodal-action="confirm" onClick="sayHi()"/> 你应该做类似的事情

requirejs(['lib/helper'], function(helper){
    window.sayHi = helper.sayHi;
});

但设置从 HTML 调用的全局变量是一种反模式。我建议你做这样的事情

HTML:

<button id="sayHiButton" data-remodal-action="confirm"></button>

JS:

requirejs(['lib/helper'], function(helper){
    document.getElementById('sayHiButton').addEventListener('click', function(){
         helper.sayHi();
    });
});

关于javascript - RequireJS 从模块返回一个函数以在模板中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36217131/

相关文章:

javascript - Jquery UI 自动完成组合框按钮单击事件

javascript - PHP in JavaScript 集成代码

backbone.js - RequireJS - 如何在 Backbone 加载 Underscore 之前对其进行配置?

javascript - 问题声明然后与 require.js 共享模块

asynchronous - 加载 requireJS 模块内联 HTML 正文?

javascript - 使用 Jasmine 检查 Backbone/requireJs 项目

backbone.js - 从控制台访问 requireJS 模块中的主干对象

javascript - 如何使用 jQuery 从 URL 获取端口号?

javascript - Dynamics CRM 中 clientglobalcontext.js.aspx 的确切用途是什么?

javascript - 我如何在请求模块中进行response.write