requirejs, два класса в одном файле
Я только начал с RequireJS, но я застрял в той части, где я хочу использовать один js-файл, в котором есть два defines (), например:
имя файла: test.js
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);
});
он находит 2-й парам, "тестовый" файл. Только он возвращает 'null'. Он не может найти "test2", потому что пытается найти файл с именем 'условие_2.js'. На самом деле я хотел бы сделать что-то вроде:
require(['jquery', 'test.test1', 'test.test2'], function ( $, t1, t2 ) {
console.log(t1);
});
но в любом случае, я хотел бы получить обработчик для обоих объектов. Что я делаю не так??
1 ответов
вы не можете экспортировать два разных модуля, как это. Если вы хотите сохранить их как "подмодули ""теста", правильным способом будет сделать:
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;
});