如何正确地将参数传递给RequireJS回调函数
How to correctly pass parameters to RequireJS callback function
如何使用RequireJS将参数正确传递给静态函数?下面我需要运行函数render并将两个参数"node"answers"bus"传递给这个函数。
var nodes = document.querySelectorAll('*[ondrawjs]');
var node;
for(var i = 0; node = nodes[i]; i++) {
var render_name = node.getAttribute('ondrawjs');
require(['agera/' + render_name], function(module) {
module.render(node, bus);
});
}
请注意,RequireJS回调被称为async。
您的node
变量的作用域是周围的(全局)上下文,并且将具有在循环过程中被赋予的最新值。调用回调时,node具有最后一个值。
您需要通过闭包函数绑定变量:
function makeCallback(node, bus) {
return function(module) {
module.render(node, bus);
};
}
现在外部node
变量在makeCallback()
内部"重复",它将保持其值。
var nodes = document.querySelectorAll('*[ondrawjs]');
var node;
for (var i = 0; node = nodes[i]; i++) {
var render_name = node.getAttribute('ondrawjs');
require(['agera/' + render_name], makeCallback(node, bus));
}
(注意:我假设丢失的bus
变量实际上存在于您的代码中。)
相关文章:
- AngularJS:我可以跳过函数参数回调吗
- 要求未定义JS回调参数
- MeteorJS:在带有回调的vzaar api上正确使用wrapAsync
- 自引用回调
- 测试Angular Service解决错误回调中的promise
- 如何正确地将参数传递给RequireJS回调函数
- 如何使用RequireJS进行跨模块回调/事件处理
- requireJS在回调中更改此上下文
- Requirejs:dist 失败,加载器插件没有在构建:文本中调用加载回调
- RequireJS + Angular:未定义的应用程序.回调不触发
- RequireJS:在另一个“require”的回调中使用“require”不会从CDN加载
- RequireJS:在回调中定义
- 回调方法中未定义RequireJS依赖项
- RequireJS main require回调从未调用过
- RequireJS:无法在回调中读取未定义的属性
- RequireJS:在指定配置中存在路径别名的绝对路径名时不触发require回调
- RequireJS定义了返回错误模块依赖的回调
- RequireJS本地错误回调,超时被忽略
- 使用RequireJS分离Backbone.js对象后,Model.fetch()回调不起作用
- RequireJS错误回调(errback)没有被调用