我希望在一个模块中创建一个函数,该函数可以处理各种依赖项,但在模板中调用,到目前为止,我只收到一个未定义的函数错误。我哪里错了,还是根本不可能?
helper.js模块
define(['aDependency'],function(){
var sayHi = function(){
console.log('Hi');
};
return{
sayHi: sayHi
}这个模块在我的主文件中是必需的
requirejs(['lib/helper']);我想在我的模板中使用这个函数;
<button data-remodal-action="confirm" onClick="sayHi()"/>然而,我得到了一个不确定的函数。
任何帮助都非常感谢。
干杯
发布于 2016-03-25 09:30:34
似乎您试图调用sayHi函数,就像它在全局范围中一样,但这并不是因为需求模块有独立的作用域
要像这样使用它- <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>联署材料:
requirejs(['lib/helper'], function(helper){
document.getElementById('sayHiButton').addEventListener('click', function(){
helper.sayHi();
});
});发布于 2016-03-25 09:24:04
你不能那样做
<button data-remodal-action="confirm" onClick="sayHi()"/>指向全局函数。
sayHi()函数是helper模块返回的对象的一部分。这根本不是全球性的。如果要将该函数添加为按钮上的单击事件,则必须将其添加到可见的位置。
在帮助器模块中。
define(['aDependency'],function(){
var sayHi = function(){
console.log('Hi');
};
$('button').click(sayHi);
return{
sayHi: sayHi
}或
使用助手模块的内部模块:
requirejs(['lib/helper'], function (helper) {
$('button').click(helper.sayHi);
});https://stackoverflow.com/questions/36217131
复制相似问题