2015-09-04 126 views
-2

我有一个名为ui.js的JS文件,其中的一个函数做了一些事情。这个文件看起来像这样Javascript功能超出范围 - 要求js

define(function (require) { 
    function someName(param1, param2, param3) { 
    ...... 
    }; 
} 

在另一个JS文件,我把我所有的JS文件,像这样:

define(function (require) { 
    var $ = require('jquery'); 
    var functionName = require('ui'); 

    $(function() { 

    function one() { 
     ..... 
     someName(value1, value2, value3); 
    } 
    }); 
}); 

功能,一个工程没有错误,但是当我调用其内部功能someName,那么我得到一个错误someFunction没有定义。我必须超出范围,但我不知道如何使这个工作。我试图在someName函数的外部和内部使用console.log,并从外部获取日志,但不从内部获取日志。有任何想法吗?

/////编辑 我输错在这里,我有右括号在我的代码

+0

我想你在你的第二个代码中缺少一个'});'。可能只是一个复制/粘贴问题。你会看到它,如果你格式化的代码。 – Andy

+0

'&'不是有效的变量名称! –

+0

ups,对不起,应该是$ –

回答

0

我猜你正在寻找这样的:

ui.js

define(function() { 
    return function(param1, param2, param3) { 
    ... 
    }; 
} 

someOtherModule.js

define(["jquery", "ui"], function($, ui) { 
    $(function() { 
    ... 
    ui(v1, v2, v3); 
    }); 
}); 

如果ui.js应提出几种方法:

ui.js

define(function() { 
    return { 
    f1: function() { 
     ... 
    }, 
    f2: function() { 
     ... 
    } 
    }; 
} 

someOtherModule.js

define(["jquery", "ui"], function($, ui) { 
    $(function() { 
    ... 
    ui.f1(); 
    ui.f2(); 
    }); 
}); 
+0

谢谢!你的前两个街区完成了这项工作。 –

+0

@gogo_rulez很高兴我可以帮助:)但我建议你阅读[RequestJS API](http://requirejs.org/docs/api.html),相当完整和有教育意义。 – sp00m