[英]Loading 'theme' and 'exporting' module with Highcharts using Requirejs
[英]automatically loading of a dependent module using RequireJS
我正在使用Knockout和Require。 我想使用一个单独的模块中的一些淘汰赛处理程序。 没有依赖此模块的JavaScript代码,但是它在HTML的数据绑定属性中使用。
我该如何告诉Require,无论何时添加敲除脚本,它也应该也添加此模块,并且该模块依赖于敲除(它应该能够使用'ko')?
如果我理解正确,那么这仅是“使用依赖项定义模块”,这是一个非常基本的requirejs问题。 看一看requirejs api文档的“带有依赖项的定义函数”部分。
这是文档中的示例:
//my/shirt.js now has some dependencies, a cart and inventory
//module in the same directory as shirt.js
define(["./cart", "./inventory"], function(cart, inventory) {
//return an object to define the "my/shirt" module.
return {
color: "blue",
size: "large",
addToCart: function() {
inventory.decrement(this);
cart.add(this);
}
}
}
);
因此,您也可以在剔除处理程序中执行此操作,将剔除依赖项传递给函数。 然后,在需要敲除的每个模块中,将敲除处理程序添加到define语句中的依赖项。 如果不需要在模块内部而是仅在DOM内部使用它们,则不必将它们传递给函数参数。 您可以仅将敲除处理程序添加到define依赖项列表的末尾,而无需添加如下其他参数:
define(["knockout", "knockout-handlers"], function(knockout) {
//you're module using knockout,
//knockout-handlers will be available inside the dom
});
当我重新思考我的答案时,我得出的结论是,循环依赖在这里不是问题。 您可以对“自动依赖项”使用填充程序配置:
//within your config
requirejs.config({
shim: {
'knockout': {
deps: ['knockout-handlers']
}
}
});
//your knockout handlers module definition
define(["knockout"], function(knockout) {
return {
//Your knockout-handler module
}
});
每次加载淘汰赛时,这都会加载淘汰赛处理程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.