无法在requirejs中调用另一个模块

时间:2012-07-30 06:17:46

标签: javascript requirejs

在下面的代码中,我正在调用myscript.getNum();,但myscript.js会抛出错误

  

意外令牌(

jloader.js

require(["evtManager","myscript"] , function(evtManager , myscript) {

var el = document.getElementById("Clickarea");
evtManager.addEvent(el , "click" , function(){
    myscript.getNum();
    }); 
});

myscript.js - >加载myscript2.js并调用函数getValue()

define(["myscript2"], function(myscript2) 
{
    getNum : function(){            //Throws an error "Unexpected token (" 
        var x = require("myscript2").getValue();
        return 5 + x;
    }
});

myscript2.js

define({
    getValue : function(){
         return 30;
    }
})

2 个答案:

答案 0 :(得分:1)

您可能希望 myscript.js 返回与此example类似的对象。我不认为您需要“myscript2”,因为已经为您完成了这项工作:

define(["myscript2"], function(myscript2)
{
    return {
        getNum : function(){
            var x = myscript2.getValue();
            return 5 + x;
        }
    };
});

答案 1 :(得分:0)

你的榜样,重要的部分:

function(){     getNum:function(){     } }

这应该如何运作?结肠实际上完全错了。你必须使用等号。您可以将var getNum = function()用于私有方法,也可以this.getNum = function()用于公共方法。