我不确定为什么这不起作用。我将我的函数包装在一个匿名函数中,并认为在其他地方调用之前不会对其进行评估。但是我收到一个关于“dropchart”没有定义的错误,所以它正在这个模块中进行评估。
define(function() {
var stage = {
before: {
createCanvas: function() {
return function() {
before(function(done) {
this.canvas = new dropchart.Canvas({
canvas: argsFor.canvas(),
data: argsFor.data()
});
done();
});
};
}
}
};
return stage;
});
这是从其他模块调用的方式:
define(['jquery', 'dropchart', 'argsFor', 'stage'],
function($, dropchart, argsFor, stage) {
var should = chai.should();
var xAxisSpec = {
run: function() {
describe('xAxis', function() {
stage.before.createCanvas();
...
答案 0 :(得分:1)
stage
模块具有argsFor
和dropchart
个依赖关系,不是调用模块。
调用模块不能以某种方式使stage
模块可用,除非你在stage.before.createCanvas
中将它们作为参数传递,或者将它们放在全局范围内,这会破坏require.js的整个点