[英]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.