f.e。我有:
require( ['module1'], function( module1_callback){
//callback_1 after code is loaded
} );
和module1.js
define( ['module2'], function(module2_callback)
{
//function_1 to perform something
return 'something';
});
我需要module1按需,但每次我需要运行function_1时,我需要运行该模块, 在这种情况下,module1中的function_1仅在第一次加载时执行,但每次需要module1时我都需要该例程。只返回回调执行
答案 0 :(得分:2)
这不是requirejs的工作方式。但是你可以返回一个能执行某些操作的函数然后返回一些东西:
define( ['module2'], function(module2_callback) {
return function() {
//to perform something
return 'something';
}
});
并在你的基础模块中:
require( ['module1'], function( module1_callback){
var something = module1_callback();
});
答案 1 :(得分:-2)
检索函数会带来更多复杂性,并且在某些情况下无法使用主干插件和循环依赖关系,特别是在大页面应用程序中,页面的某些部分需要从头开始重新初始化, 我最终使用魔术模块
和undef
define( ['module2', 'module'], function(module2_callback) {
//push module id into global array
window.undefArr.push(module);
//all code here will be executed on every require
});
和
//before require undef modules
//here you can control which modules undef which to leave in memory
//based on module properties like path, name, status etc.
_.each( window.undefArr, function(mod){
requirejs.undef(mod.id);
});
//init undefArr
undefArr = [];
require( ['module1']);