【发布时间】:2013-06-25 05:22:57
【问题描述】:
我正在维护和扩展 AMD 之前的旧项目。 我希望在应用程序中添加一个图表。为此,我创建了一个js文件如下:
define(["dojox/charting/Chart",...."dijit/Dialog","dojo/dom-construct"],
function (Chart) {
function showDailyChart(data){
//code to show the chart in a dialog
}
return customModules.singleChart;
});
我已将此文件保存为/customModules/singleChart.js
在我的主 HTML 页面中,我已将其添加到包中,如下所示:
var dojoConfig = { parseOnLoad: true,
packages: [....,{"name":"customModules",
"location":location.pathname.replace(/\/[^/]+$/, "")+"/modules" }
]};
我要调用它的函数是 AMD 之前的函数。所以我这样称呼它:
dojo.require("customModules.singleChart");
.
.
.
customModules.singleChart.showDailyChart(data);
我可以看到 /customModules/singleChart.js 已加载到 Firebug 控制台以及 Net Tab 中。但是没有customModules.singleChart 对象。奇怪的是也没有错误。我已经在 Firebug 以及 Google Chrome 的开发者工具中对此进行了测试。
使用dojo.require 调用 AMD 模块的正确方法是什么?还是有更好的方法来做我需要的事情?
【问题讨论】: