在 AMD 中使用 dojox/form/BusyComboButton
Using dojox/form/BusyComboButton in AMD
我正在尝试在 AMD 代码中使用 dojox/form/BusyComboButton,但找不到如何使用的示例(我不确定是否可行)。
由于它是在 dojox/form/BusyButton
文件中声明的,而没有从模块返回,因此我找不到通过 require 调用或在 html 中不使用非 AMD 代码来拉取它的方法。
有没有办法在不修改 dojox 的情况下做到这一点?
Dojo 将模块添加到全局范围 (window
)。这意味着您仍然可以检索它们以在您的代码中使用,例如:
require(["dojox/form/BusyButton", "dojo/domReady!"], function() {
var BusyComboButton = window.dojox.form.BusyComboButton;
var btn = new BusyComboButton({
label: "My button"
}, "test");
});
如果您也喜欢为 BusyComboButton
使用 AMD 加载器,您可以创建自己的 shim,例如:
custom/BusyComboButton.js:
define(["dojox/form/BusyButton"], function() {
return window.dojox.form.BusyComboButton;
});
那么你可以使用:
require(["custom/BusyComboButton", "dojo/domReady!"], function(BusyComboButton) {
var btn = new BusyComboButton({
label: "My button"
}, "test");
});
我正在尝试在 AMD 代码中使用 dojox/form/BusyComboButton,但找不到如何使用的示例(我不确定是否可行)。
由于它是在 dojox/form/BusyButton
文件中声明的,而没有从模块返回,因此我找不到通过 require 调用或在 html 中不使用非 AMD 代码来拉取它的方法。
有没有办法在不修改 dojox 的情况下做到这一点?
Dojo 将模块添加到全局范围 (window
)。这意味着您仍然可以检索它们以在您的代码中使用,例如:
require(["dojox/form/BusyButton", "dojo/domReady!"], function() {
var BusyComboButton = window.dojox.form.BusyComboButton;
var btn = new BusyComboButton({
label: "My button"
}, "test");
});
如果您也喜欢为 BusyComboButton
使用 AMD 加载器,您可以创建自己的 shim,例如:
custom/BusyComboButton.js:
define(["dojox/form/BusyButton"], function() {
return window.dojox.form.BusyComboButton;
});
那么你可以使用:
require(["custom/BusyComboButton", "dojo/domReady!"], function(BusyComboButton) {
var btn = new BusyComboButton({
label: "My button"
}, "test");
});