我的main.js
中有一部分包含以下功能:
function isTrue(x){...}
function resizeEditors() {...}
function updateLayout() {...}
function prettify() {...}
function setTheme(theme) {...}
function themedLayout(isDark){...}
function enablePanel(panel) {...}
function disablePanel(panel) {...}
function enableDefaultPanels() {...}
function toggleFullscreen() {...}
function toggleEditorFullscreen(selected) {...}
有没有办法让我的main.js
文件的依赖项可以使用这些函数?
例如,在editors.js
我正在使用isTrue
函数,但editors.js模块当前无法找到isTrue
,因为它位于main.js
文件< / p>
editors.setShowPrintMargin( isTrue( settings.showPrintMargin ) );
修改:
项目如何:
main.js
:
require(['jquery', 'appSession', 'editors'], function ($, appSession, editors) {
function isTrue(x){...}
function resizeEditors() {...}
function updateLayout() {...}
function prettify() {...}
function setTheme(theme) {...}
function themedLayout(isDark){...}
function enablePanel(panel) {...}
function disablePanel(panel) {...}
function enableDefaultPanels() {...}
function toggleFullscreen() {...}
function toggleEditorFullscreen(selected) {...}
});
editors.js
:
define(['jquery', 'appSession'], function($, appSession){
...
editors.setShowPrintMargin( isTrue( settings.showPrintMargin ) );
...
return editors;
});
答案 0 :(得分:2)
是的,你可以退货。
define(function () {
return {
isTrue: function() {
// Code
},
otherFunction: function() {
// Code
}
}
});
然后使用它们屁股
require(["main"], function(main) {
main.isTrue(false);
});
您可以在website上了解有关定义模块的更多信息。
答案 1 :(得分:1)
您可以创建一个包含共享/全局功能的模块,并使其成为需要它的模块的依赖项:
globals.js:
define([], function() {
function isTrue(x){}
// rest of functions...
function toggleEditorFullscreen(selected) {}
return { // return functions... };
});
然后使用它:
require(["globals", "editors"], function(globals, editors) {
// ...
editors.setShowPrintMargin(globals.isTrue(settings.showPrintMargin));
// ...
});
或者如果你想在编辑器模块中使用它,你就是editors.js看起来像:
define(["globals"], function(globals) {
// ...
setShowPrintMargin(globals.isTrue(settings.showPrintMargin));
// ...
});
或者,如果你真的希望它们是全球性的,你应该能够做到:
window.isTrue = function(valueToCheck) {
// implementation ...
};