Mic*_*ael 43 javascript requirejs js-amd
有没有办法访问require.js的所有已加载模块?
背景:
我想init()
在加载所有这些函数后自动调用我的javascript-modules函数,请参阅require.js + backbone.js:如何构造具有初始化函数的模块?
如果没有require.js,我会遍历我自己的模块存储并调用每个init()
函数.
我现在想用require.js做这件事.我知道调用my_custom_init_function_favoritecolor_petname_love123
每个加载的模块(包括外部库)是危险的.我希望这比手动保持所有模块的列表(以及这些模块的要求)是最新的麻烦少.忘记一个模块init()比具有我的自定义函数名的第三方库更有可能(尽管后者可能更难调试).
或者有没有人更好地了解如何实现这一目标?
Ale*_*ack 68
是,require.s.contexts._.defined
是一个对象,其键是模块名称,值包括从该模块返回的值.
require.s.contexts._.defined
包括所有的模块(或者define()
或require()
诸如JavaScript文件是程序的起始点,并使用被指示data-main
为RequireJS).
Vol*_*ose 11
刚刚在我的RequireJS项目中完成了类似的行为.require.s.contexts['_'].registry
保存已注册模块的列表.
我Underscore.js
用于获取,过滤和迭代模块列表.也许以下代码片段可以帮助您:
var modules_registered = _.keys(require.s.contexts['_'].registry);
var modules_to_be_initialized = _.filter(modules_registered, function(module_title) {
return module_title.indexOf('modules') > -1;
});
_.each(modules_to_be_initialized, function(module_name) {
require([module_name], function(current_module) {
current_module.init();
});
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
17890 次 |
最近记录: |