Javascript requirejs,一个文件中有两个类
我刚开始使用RequireJS,但我想使用一个js文件,其中包含两个defines(),如下所示: 文件名:test.jsJavascript requirejs,一个文件中有两个类,javascript,requirejs,Javascript,Requirejs,我刚开始使用RequireJS,但我想使用一个js文件,其中包含两个defines(),如下所示: 文件名:test.js define('test1', ['jquery'], function() { return { method1 : function () { console.log("test1 - method 1"); }, method2 : function () { c
define('test1', ['jquery'], function() {
return {
method1 : function () {
console.log("test1 - method 1");
},
method2 : function () {
console.log("test1 - method 2");
}
}
});
define('test2', ['jquery'], function() {
return {
method1 : function () {
console.log("test2 - method 1");
},
method2 : function () {
console.log("test2 - method 2");
}
}
});
我还有一个引导js文件,由RequireJS框架自动加载:
require(['jquery', 'test', 'test2'], function ( $, t1, t2 ) {
console.log(t1);
});
它确实找到了第二个参数“test”文件。仅返回“null”。它找不到“test2”,因为它试图查找名为“test2.js”的文件。实际上,我想做一些类似的事情:
require(['jquery', 'test.test1', 'test.test2'], function ( $, t1, t2 ) {
console.log(t1);
});
但无论如何,我希望为这两个对象都提供一个处理程序。我做错了什么???您不能像这样导出两个不同的模块。如果要将它们保留为“测试”的“子模块”,正确的方法是:
define('test', ['jquery'], function() {
var exports = {};
exports.test1 = {
method1 : function () {
console.log("test1 - method 1");
},
method2 : function () {
console.log("test1 - method 2");
}
};
exports.test2 = {
method1 : function () {
console.log("test2 - method 1");
},
method2 : function () {
console.log("test2 - method 2");
}
};
return exports;
});
然后你可以做:
require(['test'], function (test) {
var test1 = test.test1;
});
粒度在文件级别。不能导入文件的某些部分。只要导入“test.js”就可以得到这两个对象。@Pointy那么我的代码仍然有问题,因为“test”返回一个空对象。啊。。。根据RequireJS文档,任何给定的.js文件中应该只有一个模块。根据本视频,这是可能的我也做了同样的事。我的第一个define nu只定义了一个函数(){},第二个确实定义了一个名称。但它仍然在寻找一个名为test2.js的文件但当我只对每个文件使用一个define时,它确实有效。我想我会坚持下去。如果你看了视频上的评论,你会发现其他人也很困惑。我认为这根本不是一个好的解释。如果我在那里定义了两个子模块,而我恰好只使用了代码中的一个模块。r.js优化器是否只将其中一个模块加载到最终编译的文件中?